[Info-vax] CREPRC MBXUNT (Handle Process Termination)
Craigers01 at gmail.com
Craigers01 at gmail.com
Mon Mar 9 13:39:54 EDT 2009
I have some C code running on OpenMVS VAX 6.2. The code creates
subprocesses. I need to perform some clean up tasks when my sub
processes terminate. I wrote a function "processTermination", but I
can't seem to get it to fire when the sub process terminates. I can't
find any example code where anyone is actually doing this. My code is
C. Here are the relevant snippets. It runs without error, but the
"processTermination" function does not run. I appreciate any
assistance!
unsigned short int termMbx2;
/* Create Termination MBX */
status = sys$crembx (0, /* 0=temp, 1=perm */
&termMbx2,
512, /* Max message size */
512, /* Buffer space for messages */
prot,
PSL$C_USER,
0,
0,
0);
if (!(status & STS$M_SUCCESS)) {
printf (" (sys_crembx) Error creating term MBX.\n") ;
show_error (status);
exit(1);
}
/* Set AST on Term MBX */
status = sys$qio(0, termMbx2, IO$_READVBLK,
&termBuf->iosb,
processTermination,
&termBuf,
0, 0, 0, 0, 0, 0);
if (!(status & STS$M_SUCCESS)) {
printf (" (sys_qio) Error setting qio to Term MBX.\n") ;
show_error (status);
exit(1);
}
/* Create the Sub Process linked to the Term Mbx */
status = sys$creprc (&pid, &image_name_d, &command_proc_d,
&log_file, 0, 0, 0, &process_name_d, 0, 0, &termMbx2, 0,
0);
if (!(status & STS$M_SUCCESS)) {
printf (" (sys_creprc) Error Creating Child process.\n") ;
show_error (status);
sys$exit(status);
} else {
printf (" Client Server PID : %08x\n\n",pid);
}
More information about the Info-vax
mailing list