diff --git a/src/sman/bookvol6.pamphlet b/src/sman/bookvol6.pamphlet index d80388b..f0d9bd4 100644 --- a/src/sman/bookvol6.pamphlet +++ b/src/sman/bookvol6.pamphlet @@ -812,6 +812,8 @@ these structures which maintains the process list for axiom. #define NadaDelShitsky 2 /* When a process dies start it up again */ #define DoItAgain 3 +/* When hypertex dies, clean its socket */ +#define CleanHypertexSocket 4 typedef struct spad_proc { int proc_id; /* process id of child */ @@ -1405,7 +1407,7 @@ start_the_hypertex(void) sprintf(prog, "%s -k -rv %s", HypertexProgram, VerifyRecordFile); spawn_of_hell(prog, NadaDelShitsky); } - else spawn_of_hell(HypertexProgram, NadaDelShitsky); + else spawn_of_hell(HypertexProgram, CleanHypertexSocket); } @ @@ -1517,6 +1519,14 @@ start_the_Axiom(char **envp) \subsection{clean\_up\_sockets} <>= static void +clean_hypertex_socket(void) +{ + char name[256]; + sprintf(name, "%s%d", MenuServerName, server_num); + unlink(name); +} + +static void clean_up_sockets(void) { char name[256]; @@ -1526,8 +1536,7 @@ clean_up_sockets(void) unlink(name); sprintf(name, "%s%d", SessionIOName, server_num); unlink(name); - sprintf(name, "%s%d", MenuServerName, server_num); - unlink(name); + clean_hypertex_socket(); } @ @@ -1704,7 +1713,6 @@ monitor_children(void) if (dead_baby == -1 && death_signal) { kill_all_children(); clean_up_sockets(); - clean_up_terminal(); sleep(2); exit(0); } @@ -1731,7 +1739,6 @@ monitor_children(void) case Die: kill_all_children(); clean_up_sockets(); - clean_up_terminal(); sleep(2); exit(0); case NadaDelShitsky: @@ -1739,6 +1746,9 @@ monitor_children(void) case DoItAgain: spawn_of_hell(proc->command, DoItAgain); break; + case CleanHypertexSocket: + clean_hypertex_socket(); + break; } } }