[comp.lang.asm370] Interrupts

I1120218@DBSTU1.BITNET (Martin Ahlborn) (05/01/91)

I have written a module 'DA' that shows where users are logged in.
But since it uses IUCVTRAP MODULE to get incoming messages (from PVM),
it doesn't work together with the famous program CHAT because
CHAT also traps messages himself. When I call DA in the CHAT-environment,
simply nothing happens as if the program were waiting for something.
No CPU time passes.

What must my module switch off or so to be compatible with CHAT?
I think it has to do with HNDINT or CMSIUCV.
Perhaps it is not very difficult to trap messages myself without
IUCVTRAP MODULE ?

phil@ux1.cso.uiuc.edu (Phil Howard KA9WGN) (05/02/91)

I1120218@DBSTU1.BITNET (Martin Ahlborn) writes:

>I have written a module 'DA' that shows where users are logged in.
>But since it uses IUCVTRAP MODULE to get incoming messages (from PVM),
>it doesn't work together with the famous program CHAT because
>CHAT also traps messages himself. When I call DA in the CHAT-environment,
>simply nothing happens as if the program were waiting for something.
>No CPU time passes.

>What must my module switch off or so to be compatible with CHAT?
>I think it has to do with HNDINT or CMSIUCV.
>Perhaps it is not very difficult to trap messages myself without
>IUCVTRAP MODULE ?

This is a typical problem derived from CMS's roots back in the "one person
could only do one thing from beginning to end at a time" world way back when.

CMS provide some rudimentary distribution of interrupts, but only to a limited
extent.

You can trap messages yourself, and if done carefully, you can also do so
AND restore them to CHAT.  But if a message for CHAT comes in during the
window.... well... oops.

We need a message distributor.  It would take control of all incoming messages
and distribute them out to various programs based on the source of the message.
Then CHAT can get all its messages and DA can get all its messages, even if
they arrive interleaved.

My TIE (Tasks-Interrupts-Events) package will eventually have a handler for
this sort of thing as a separate module.
-- 
 /***************************************************************************\
/ Phil Howard -- KA9WGN -- phil@ux1.cso.uiuc.edu   |  Guns don't aim guns at  \
\ Lietuva laisva -- Brivu Latviju -- Eesti vabaks  |  people; CRIMINALS do!!  /
 \***************************************************************************/

news@ucf1vm.BITNET (05/02/91)

I1120218@DBSTU1.BITNET (Martin Ahlborn) writes:

>I have written a module 'DA' that shows where users are logged in.
>But since it uses IUCVTRAP MODULE to get incoming messages (from PVM),
>it doesn't work together with the famous program CHAT because
>CHAT also traps messages himself. When I call DA in the CHAT-environment,
>simply nothing happens as if the program were waiting for something.
>No CPU time passes.

>What must my module switch off or so to be compatible with CHAT?
>I think it has to do with HNDINT or CMSIUCV.
>Perhaps it is not very difficult to trap messages myself without
>IUCVTRAP MODULE ?

This is a typical problem derived from CMS's roots back in the "one person
could only do one thing from beginning to end at a time" world way back when.

CMS provide some rudimentary distribution of interrupts, but only to a limited
extent.

You can trap messages yourself, and if done carefully, you can also do so
AND restore them to CHAT.  But if a message for CHAT comes in during the
window.... well... oops.

We need a message distributor.  It would take control of all incoming messages
and distribute them out to various programs based on the source of the message.
Then CHAT can get all its messages and DA can get all its messages, even if
they arrive interleaved.

My TIE (Tasks-Interrupts-Events) package will eventually have a handler for
this sort of thing as a separate module.
--
 /***************************************************************************\
/ Phil Howard -- KA9WGN -- phil@ux1.cso.uiuc.edu   |  Guns don't aim guns at  \
\ Lietuva laisva -- Brivu Latviju -- Eesti vabaks  |  people; CRIMINALS do!!  /
 \***************************************************************************/