Distributed Systems Network Management (DSNM) Subsystem Interface Development Guide

DSNM Library Services
Distributed Systems Network Management (DSNM) Subsystem Interface Development
Guide109759 A-113
_SIGNAL^EVENT
_SIGNAL^EVENT
_SIGNAL^EVENT generates private events or simulates frame events.
event(s) input
INT:value
is an INT expression, the one-bits of which designate the event(s) to be generated.
Considerations
When the thread generates its own event(s) with _SIGNAL^EVENT, it is
redispatched immediately when it returns _RC^WAIT to the frame.
You may simulate any frame event by signaling it with _SIGNAL^EVENT. For
example:
CALL _SIGNAL^EVENT (_EV^IODONE);
When you simulate a frame event, be careful not to use control variables set by
frame-generated events (such as _LAST^CI^ID or _LAST^TIMEOUT^TAG),
unless they are set to match the event simulated.
Events generated by the frame occur singly, with one dispatch per event. All events
generated by the thread occur together, immediately after the next return to the
frame and before any frame-generated events.
Example
The following example causes two user-defined events, sub^object and
next^object, to be turned on in _LAST^EVENTS at the next dispatch:
LITERAL next^object = _PRIVATE^THREAD^EVENT (0);
LITERAL sub^object = _PRIVATE^THREAD^EVENT (1);
CALL _SIGNAL^EVENT (sub^object + next^object);
RETURN _RC^WAIT;
.
!After the next dispatch ...
.
IF _ALLON (_LAST^EVENTS, sub^object + next^object)
THEN ...;
Since _PRIVATE^THREAD^EVENT generates a bit value different from all frame
events, the events that are on in _LAST^EVENTS mean this dispatch was caused by
_SIGNAL^EVENT.
CALL _SIGNAL^EVENT ( event(s) );