anchor.diff:    finally
       FCriticalSection.Leave;
     end;
  +  if Assigned(FEvent) then
  +    FEvent.SetEvent;
   end;
   
   function TUramakiEngineMessageQueue.Pick: TUramakiEngineMessage;
  
positive.code: 
      if not Terminated then
      begin
        FLetsGoEvent.ResetEvent;
        FLetsGoEvent.WaitFor(10000);
      end;
    end;
    Sleep (10);
  
negative.code:   private
      FMessages: TObjectList;
      FCriticalSection: TCriticalSection;
      FEvent : TSimpleEvent;
    public
      constructor Create;
      destructor Destroy; override;
  
      procedure Put(aMessage : TUramakiEngineMessage);
      function Pick : TUramakiEngineMessage;
      property Event : TSimpleEvent read FEvent write FEvent;
    end;
  
    TDoProcessMessage = procedure (aMessage : TUramakiEngineMessage) of object;
  