anchor.diff:  {$IFDEF DEBUG_LOCKS}
   Var
     I:Integer;
  -{$ENDIF}  
  +{$ENDIF}
   Begin
     {$IFDEF DEBUG_LOCKS}
     I := 0;
  
positive.code: 
  Procedure Semaphore.Wait();
  Begin
    {$IFDEF WINDOWS}
    WaitForSingleObject(_Handle, INFINITE);
    {$ELSE}
  
    {$IFNDEF HAS_SEMAPHORES}
    sem_wait(@_Handle);
    {$ENDIF}
    
    {$ENDIF}
  End;
  
  {$IFDEF DEBUG_LOCKS}
  Var
    I:Integer;
  {$ENDIF}  
  
  Initialization
  Finalization
  
negative.code: {$IFDEF WINDOWS}Windows
  {$ELSE}cmem, {ctypes,baseunix,}unixtype{$ENDIF};
  
  {$IFDEF WINDOWS}
  {-$DEFINE WINAPISYNC}
  {$ENDIF}
  
  {$IFNDEF WINAPISYNC}
  {-$DEFINE USEPTHREADS}
  
  {$IFDEF USEPTHREADS}
  
  Type
   ppthread_mutex_t = ^pthread_mutex_t;
   ppthread_mutexattr_t = ^pthread_mutexattr_t;
  