anchor.diff:    inherited Destroy;
   end;
   
  -procedure TIocpClientContext.CheckThreadIn;
  +procedure TIocpClientContext.CheckThreadIn(const pvDebugInfo: string);
   begin
     if FCheckThreadId <> 0 then
     begin
       //s := GetDebugString;
  -    raise Exception.CreateFmt('(%d,%d)ǰѾ߳ʹ',
  -       [utils_strings.GetCurrentThreadID, FCheckThreadId]);
  +    raise Exception.CreateFmt('%s=>(%d,%d)ǰѾ߳ʹ',
  +       [pvDebugInfo, utils_strings.GetCurrentThreadID, FCheckThreadId]);
     end;
     FCheckThreadId := utils_strings.GetCurrentThreadID;
  +  FDebugInfo := pvDebugInfo;
   end;
   
   procedure TIocpClientContext.CheckThreadOut;
   begin
  +  FDebugInfo := STRING_EMPTY;
     FCheckThreadId := 0;
   end;
   
  
positive.code:   lvDNACounter := 0;
    try
      lvDNACounter := Self.FCounter;
  
      {$IFDEF DIOCP_DEBUG}
      InterlockedDecrement(FOverlapped.RefCount);
  
negative.code:   Result := FOwner.GetSendRequest;
    Assert(Result <> nil);
    Result.FClientContext := self;
  end;
  
  procedure TIocpClientContext.IncRecvRef;
  var
    j:Integer;
  begin
    j := InterlockedIncrement(FWSARecvRef);
    Assert(j > 0, 'error IncRecvRef');
  end;
  
  
  