$SEM = CREATE SEMAPHORE; IF ($PID == FORK()) { wait($SEM); # grab the semaphore open file; WRITE 'ALPHA'; close file; signal($SEM); # signal semaphore wait($SEM); # wait for signal from child open file; WRITE 'BETA'; close file; signal($SEM); # signal semaphore } ELSE IF(DEFINED $PID) { SLEEP(3); # make sure parent grabs semaphore wait($SEM); # wait for signal from parent open file; READ THE FILE; close file; signal($SEM); # done with file ops, signal semaphore wait($SEM); # wait for signal from parent that it is done writing to file open file; READ THE FILE; close file; signal($SEM); }