Listing 4

prolog lock(HSEM sem, long timeout)
  {
  int error;
  error = DosSemRequest(sem,timeout);
  if(error) return(error);
  }

epilog unlock(HSEM sem)
  {
  DosSemClear(sem);
  }

update(char *buffer, HSEM sem)
  prolog lock(sem,10000);
  epilog unlock(sem);
  {
  /***  UPDATE A SHARED BUFFER ***/
  }