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!! / \***************************************************************************/