*DECK,CKTASKI 
USETEXT COMCBEG 
USETEXT COMQDEF 
USETEXT COMQSCH 
      PROC CKTASKI; 
        BEGIN    # CKTASKI #
# 
**    CKTASKI    CHECK FOR INITIATOR TASKS TO SCHEDULE. 
* 
*     CKTASKI IS RESPONSIBLE FOR INTITIATING PERIODIC TASKS.
* 
*     PROC CKTASKI
* 
*     ENTRY      NONE.
* 
*     EXIT       TIMNXTASK UPDATED (SECONDS UNTIL NEXT TASK). 
* 
*     PROCESS    IF LESS THAN ONE SECOND ELAPSED: 
*                  RETURN.
*                UPDATE TIMERS. 
*                IF IDLEDOWN-IN-PROGRESS: 
*                  RETURN 
*                IF CHECK-DISABLED-PIDS TIMER EXPIRED:  
*                  CALL PLRSTRT TO CHECK PIDS AND RETURN NEW TIMER. 
*                IF LDT-REFRESH TIMER EXPIRED:  
*                  CALL GNDT TO REFRESH PID/LID TABLE.
*                IF FILE-SELECTION TIMER EXPIRED: 
*                  CALL SELQFIL TO SELECT NEW QUEUE FILES.
# 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC GNDT;                 # UPDATE PID/LID TABLE # 
        PROC NAME;                 # DEBUG CODE # 
        FUNC PLRSTRT   U;          # DETERMINE WHEN TO REENABLE PID # 
        PROC SELQFIL;              # SELECT NEW QUEUE FILES # 
        FUNC TIMADT    U;          # ADJUST TIMER VALUE # 
        END 
  
# 
****  XREF END
# 
  
  
        $BEGIN
        NAME("CKTASKI");           # DEBUG CODE # 
        $END
  
      IF TIMT EQ TIMLASTTIM        # IF LESS THAN ONE SECOND ELAPSED #
      THEN
        BEGIN 
        RETURN;                    # RETURN # 
        END 
  
      TIMNXTTASK = O"7777";        # DETERMINE NEXT TIMER TO EXPIRE # 
      TIMLDTRFSH = TIMADT(TIMLDTRFSH, TIMLASTTIM);
      TIMPLRSTRT = TIMADT(TIMPLRSTRT, TIMLASTTIM);
      TIMSELSECS = TIMADT(TIMSELSECS, TIMLASTTIM);
      TIMLASTTIM = TIMT;           # UPDATE LAST REFERENCE TIME # 
      IF IDLE 
      THEN
        BEGIN 
        RETURN;                    # EXIT IF IDLEDOWN # 
        END 
  
      IF TIMLDTRFSH EQ 0           # IF PID/LID REFRESH TIMER EXPIRED # 
      THEN
        BEGIN 
        GNDT;                      # UPDATE PID/LID TABLE # 
        TIMLDTRFSH = SCHLDTRFSH;   # RESET TIMER #
        END 
  
      IF TIMLDTRFSH LT TIMNXTTASK 
      THEN
        BEGIN 
        TIMNXTTASK = TIMLDTRFSH;   # NEXT TIMER TO EXPIRE # 
        END 
  
      IF TIMPLRSTRT EQ 0           # IF TIME TO CHECK DISABLED PIDS # 
      THEN
        BEGIN 
        TIMPLRSTRT = PLRSTRT;      # CHECK PIDS AND RETURN NEXT TIMER # 
        END 
  
      IF TIMPLRSTRT LT TIMNXTTASK 
      THEN
        BEGIN 
        TIMNXTTASK = TIMPLRSTRT;   # NEXT TIMER TO EXPIRE # 
        END 
  
      IF TIMSELSECS EQ 0           # IF FILE SELECTION TIMER EXPIRED #
      THEN
        BEGIN 
        SELQFIL;                   # SELECT NEW QUEUE FILES # 
        TIMSELSECS = SCHSELSECS;   # RESET TIMER #
        END 
  
      IF TIMSELSECS LT TIMNXTTASK 
      THEN
        BEGIN 
        TIMNXTTASK = TIMSELSECS;   # NEXT TIMER TO EXPIRE # 
        END 
  
      END  # CKTASKI #
    TERM
