anchor.diff:  function AtomicDecrement(var Target: Integer): Integer;{$IFDEF HAVE_INLINE} inline;{$ENDIF}
   {$IFEND <XE5}
   
  +{$IFDEF LOW_VER}
  +function TryEnterCriticalSection; external 'kernel32.dll' name 'TryEnterCriticalSection';
  +{$ENDIF}
  +
   function GetCPUCount: Integer;
   
   implementation
  
positive.code: {$IF defined(FPC) or (RTLVersion>=18))}
    {$DEFINE HAVE_INLINE}
  {$IFEND HAVE_INLINE}
  
  type
    TASyncWorker = class;
  
negative.code:     property Terminated;     
    end;
  
  
    TCriticalSection = class(SyncObjs.TCriticalSection)
    public
      {$IFDEF LOW_VER}
      function TryEnter: Boolean;
      {$ENDIF}
  
    end;
  
  
    TASyncInvoker = class(TObject)
    private
      FOnAsyncEvent: TOnASyncEvent;
  