GDSX Manual
LINE^HANDLER Example, Design
Extended General Device Support (GDSX) Manual–134303
7-14
LINE^HANDLER Procedure
Processing Intertask Requests
Example 7-3 shows the code for the PROCESS^DH^REQ subprocedure. Most of this 
processing is described under “Transaction Flow” on page 7-7. Notice that because the 
requester applications have been restricted to WRITE and WRITEREAD, only these two 
operation types need to be handled in this routine. 
Example 7-2. Main Entry: Decoding Events
CALL ^READUPDATEX(IN^QUEUE^FILE^NUM); ! GET INTERTASK MESSAGE
IF <> THEN CALL DEBUG;
OLDEST := NEWEST := 0;
@MSG^BUF := GETEXTPOOL(10,1024); ! FROM EXTENDED BUFFER POOL 
IF @MSG^BUF = 0D THEN CALL DEBUG;
WHILE (-1) DO
 BEGIN
 EVT := WAIT^EVENT((DISP^ITC+DISP^IOC+DISP^CAN+DISP^STOP),-1D);
 CASE (EVT) OF
 BEGIN
 E^ITC -> ! INTERTASK MESSAGE RECEIVED FROM A D^H
 BEGIN
 CALL PROCESS^DH^REQ;
 CALL ^READUPDATEX(IN^QUEUE^FILE^NUM);! GET NEXT MESSAGE
 END;
 E^IOC -> ! LINE I/O COMPLETED
 CALL LINE^IO^CMPLT;
 E^CAN -> ! ITC OPERATION CANCELED
 CALL CANCEL^ITC;
 CALL ^READUPDATEX(IN^QUEUE^FILE^NUM);! GET NEXT MESSAGE
 E^STOP -> ! TASK STOPPED FROM SCF
 CALL STOP^LINE;
 OTHERWISE ->
 CALL DEBUG;
 END; ! CASE
 END; ! WHILE
 END; ! L^H PROC










