?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Job Management: Job to Job Communication Procedures' ??
MODULE jmm$job_to_job_communication;
{
{ PURPOSE:
{   This module contains procedures supporting job to job communication.
{
?? NEWTITLE := 'Global Declarations Referenced in this Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc osc$unseen_mail_condition
*copyc ost$status
*copyc ost$system_flag
?? POP ??
*copyc clp$find_current_job_synch_task
*copyc clp$find_unseen_mail_action
*copyc pmp$cause_intra_job_condition
*copyc pmp$get_task_id
*copyc pmp$post_unseen_mail
*copyc pmp$propagate_unseen_mail
?? OLDTITLE ??
?? NEWTITLE := '[XDCL] jmp$message_waiting_flag_hndlr', EJECT ??
{
{ PURPOSE:
{   This procedure processes the message waiting system flag.
{
{ NOTES:
{   Currently, the only job to job message implemented is unseen_mail. When additional messages are
{   implemented, this procedure must process messages by identifying ordinal.
{

  PROCEDURE [XDCL] jmp$message_waiting_flag_hndlr
    (    flag_id: ost$system_flag);

    VAR
      current_task: pmt$task_id,
      ignore_status: ost$status,
      job_synch_task: pmt$task_id,
      unseen_mail_action: ^clt$unseen_mail_action;


    clp$find_current_job_synch_task (job_synch_task, ignore_status);
    pmp$get_task_id (current_task, ignore_status);
    IF current_task <> job_synch_task THEN
      pmp$cause_intra_job_condition (osc$unseen_mail_condition, job_synch_task, ignore_status);
    ELSE
      clp$find_unseen_mail_action (unseen_mail_action);
      IF unseen_mail_action^ = clc$post_unseen_mail THEN
        pmp$post_unseen_mail;
      ELSE
        pmp$propagate_unseen_mail (ignore_status);
      IFEND;
    IFEND;

  PROCEND jmp$message_waiting_flag_hndlr;
?? OLDTITLE ??
MODEND jmm$job_to_job_communication;
