anchor.diff:  
       function GetStateINfo: String;
   
  +    procedure PostAExitRequest;
  +
       /// <summary>
       ///   get worker handle response
       /// </summary>
  
positive.code:   Result := false;
    FWorkerLocker.lock;
    try
      if FWorkerList.Count >= FMaxWorkerCount then exit;
      for i := 0 to FWorkerList.Count -1 do
      begin
        if TIocpWorker(FWorkerList[i]).checkFlag(WORKER_ISWATING) then
  
negative.code: end;
  
  procedure TIocpEngine.SetWorkerCount(AWorkerCount: Integer);
  var
    j:Integer;
    i: Integer;
  begin
    //if FActive then SafeStop;
    if AWorkerCount <= 0 then
      FWorkerCount := (GetCPUCount shl 1) -1
    else
      FWorkerCount := AWorkerCount;
  
    j := FWorkerCount - FActiveWorkerCount;
    if j > 0 then
    begin
      for i := 0 to j - 1 do
      begin
        CreateWorker(False);
      end;
    end else
    begin
      j := -j;
      for i := 0 to j - 1 do
      begin
        PostAExitRequest;
      end;
    end;
  
  end;
  
  