home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_10_09
/
1009067a
< prev
next >
Wrap
Text File
|
1992-06-30
|
809b
|
76 lines
/*
Listing 4
*/
#include <stdio.h>
#include "enet_cs.h"
int NODE1_num, NODE2_num;
extern int node;
extern FILE *fp;
int critical_section()
{
switch (node) {
case NODE0:
NODE1_num = cs_read (NODE1_LOC);
NODE2_num = cs_read (NODE2_LOC);
if ( (NODE1_num == READY) && (NODE2_num == READY) ) {
NODE1_num = CLEAR;
cs_write ( NODE1_LOC, NODE1_num);
NODE2_num = CLEAR;
cs_write ( NODE2_LOC, NODE2_num);
return(STOP);
} else {
return(NORMAL);
}
break;
case NODE1:
NODE1_num = READY;
cs_write ( NODE1_LOC, NODE1_num);
return(STOP);
break;
case NODE2:
NODE2_num = READY;
cs_write ( NODE2_LOC, NODE2_num);
return(STOP);
break;
default:
printf ("Error: invalid processor\n");
exit(0);
break;
}
}