anchor.diff:  
   procedure TTestSemaphoreThread.execute;
   begin
  -  inc(globalInt);
  +  inc(globalNum);
     while not Terminated do
     begin
       case sem.WaitFor(10000) of
         wrSignaled:
           begin
  -          inc(globalInt);
  +          inc(globalNum);
           end;
         wrTimeout:
           begin
  
positive.code: 
  procedure TXPlatformTests.TestCriticalSectionThreaded;
  begin
    globalInt := GetCurrentThreadId;
    InitializeCriticalSection(cs);
    try
      EnterCriticalSection(cs);
      try
        TTestCriticalSectionThread.create(false);
        Sleep(10);
        assertTrue(globalInt = GetCurrentThreadId);
      finally
        LeaveCriticalSection(cs);
      end;
      sleep(10);
      EnterCriticalSection(cs);
      try
        assertTrue(globalInt <> GetCurrentThreadId);
      finally
        LeaveCriticalSection(cs);
      end;
  
negative.code: begin
    kcs.Enter;
    try
      globalThread := GetCurrentThreadId;
    finally
      kcs.Leave;
    end;
  