?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE NETWORK ACCESS: Job Recovery Ring 1' ??
MODULE nam$job_recovery_ring1;

{ PURPOSE:
{   This module handles the ring 1 job recovery of NAM/VE.

?? NEWTITLE := 'Global Declarations Referenced by This Module' ??
?? PUSH (LISTEXT := ON) ??
*copyc nat$received_message_list
?? POP ??
*copyc pmp$find_executing_task_xcb
?? OLDTITLE ??

?? NEWTITLE := '[XDCL, #GATE] nap$reset_received_message_list', EJECT ??
*copy nah$reset_received_message_list

  PROCEDURE [XDCL, #GATE] nap$reset_received_message_list;

    VAR
      execution_control_block: ^ost$execution_control_block,
      compare_swap_status: osc$cs_successful .. osc$cs_variable_locked,
      current_value: nat$received_message_list,
      new_value: nat$received_message_list,
      actual_value: nat$received_message_list;

    new_value.next_received_message := NIL;
    new_value.fill := 0;
    current_value := new_value;
    pmp$find_executing_task_xcb (execution_control_block);
    REPEAT
      #COMPARE_SWAP (execution_control_block^.received_message_list, current_value, new_value, actual_value,
            compare_swap_status);
      IF (compare_swap_status = osc$cs_failed) THEN
        current_value.next_received_message := actual_value.next_received_message;
      IFEND;
    UNTIL compare_swap_status = osc$cs_successful;
  PROCEND nap$reset_received_message_list;
?? OLDTITLE ??
MODEND nam$job_recovery_ring1;
