Table of Contents

DMTWAT Abstract

Statistics

Type ASSEMBLE
Source Lines : 170
Fixes Applied : 0
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [Unmodified]

Synopsis

Module

       DMTWAT

Function

        THE DMTWAT MODULE IS A TASK SERVICE ROUTINE WHICH
        IS CALLED DIRECTLY FROM TASK  PROGRAMS BY MEANS OF
        BRANCH   AND   LINK.    DMTWAT   PROVIDES   EVENT
        SYNCHRONIZATION BY  MEANS OF  SUSPENDING A  TASK'S
        EXECUTION UNTIL SOME SPECIFIED  EVENT IS SIGNALLED
        COMPLETE BY ANOTHER PROCESS IN THE SYSTEM.

Attributes

       REUSABLE, NON-INTERRUPTABLE

Operation

       DMTWAT  BEGINS  BY SUSPENDING  THE CALLING  TASK'S
       EXECUTION  THROUGH THE  FREEZE  SVC.  IF A  SINGLE
       SYNCH  LOCK  IS  SPECIFIED  IN  THE  CALL,  IT  IS
       INSPECTED TO  SEE IF IT  HAS ALREADY  BEEN POSTED.
       IF THE SPECIFIED SYNCH LOCK  IS POSTED, CONTROL IS
       IMMEDIATELY PASSED TO DMTDSP,  THE MSUP DISPATCHER.
       IF THE SYNCH LOCK IS NOT POSTED, THE "WAITING" BIT
       IS SET  IN THE  CALLING TASK'S  TASK ELEMENT,  THE
       ADDRESS OF  THE TASK ELEMENT  IS SET IN  THE SYNCH
       LOCK, AND CONTROL IS PASSED TO THE DISPATCHER.

       IF A LIST OF SYNCH LOCKS IS SPECIFIED IN THE CALL,
       EACH SYNCH LOCK  IN THE LIST WHICH  IS NOT FLAGGED
       TO  BE  SKIPPED IS  INSPECTED  TO  SEE IF  IT  HAS
       ALREADY  BEEN POSTED.  IF AT  LEAST  ONE HAS  BEEN
       POSTED, CONTROL IS IMMEDIATELY  PASSED TO THE MSUP
       DISPATCHER.  IF  NO  SYNCH LOCK  IN  THE  LIST  IS
       POSTED, THE  "WAITING" AND "LOCKLIST" BITS  IN THE
       CALLING TASK'S  TASK ELEMENT ARE  SET TO  ONE, THE
       ADDRESS OF  THE CALLING TASK  ELEMENT IS  SET INTO
       EACH SYNCH LOCK  IN THE LIST WHICH  IS NOT FLAGGED
       TO  BE  SKIPPED,  AND CONTROL  IS  PASSED  TO  THE
       DISPATCHER.

Calls to Other Routines

       NONE