Interrupt handlers - how are they different?

Anne Wilson wilson at mimsy.umd.edu
Sun Jan 6 08:53:39 AEST 1991


--text follows this line--
(Because I don't know the best place to post this, I am posting to
a bunch of groups.  My apologies if this message is either posted to
an inappropriate group, or you've seen it too many times!)

I have a C++ program which creates several "concurrently" running
processes.  They communicate via pipes and interrupts.  I have
designated a particular routine to be the interrupt handler
for these communications.

I have defined a class called Message.  One of the members of the
class message is the function recv_Message, which I have designated
as the interrupt handler.

My question is this: how is this interrupt handler different than
other C++ routines with respect to its environment/context?  I 
understand that this handler is called by the
system rather than by the compiler.  I am concerned about passing
information to the handler.  Apparently, I can't pass any arguments
to the handler.  Additionally, when the handler is invoked by
the system it doesn't know the current values of other members of its
own class, ie. the values of those members are garbage.

The only way I have found to communinicate information to this
handler is through a global variable.  This is barely acceptable 
and unsatisfying.  

I am running GNU g++ V1.37.1 on BSD Unix on a VAX.

Any comments or suggestions would be appreciated.  Please email to me 
directly.  Thanks tons in advance.

Anne Wilson
wilson at mimsy.cs.umd.edu



More information about the Comp.unix mailing list