I don't see anything wrong, however read my comments inline. Fastream Technologies wrote: > void __fastcall ReverseProxyClientClass::WaitForHTTPClientAbort(void) > { > abortingHTTPClient = true; > HTTPClient->abortComplete = false; > HTTPClient->OnRequestDone = HTTPClientRequestDoneAfterAbort; > HTTPClient->Abort(); > > if(!HTTPClient->abortComplete) > { > bool pausedHere = false; > if(!Paused) > { > Pause();
If you pause THttpCli's underlaying socket it's most likely not required however I don't think it hurts. > pausedHere = true; > } > > MSG msg; > while(!HTTPClient->abortComplete) > if(GetMessage(&msg, NULL, 0, 0)) > affinityThread->processServerThreadMessage(msg); > else > break; It's unfortunately needed to pump messages since THttpCli.Abort may not block (RequestDone may be triggered delayed by a posted message), which I think should/can be easily changed to _always behave blocking. THttpCli.Abort also may call FCtrlSocket.Close. I don't understand why it doesn't always call FCtrlSocket.Abort, which would make sure that TWSocket.InternalClose() finished as soon as possible? Arno Garrels > if(!FSessionClosedFlag && pausedHere) > Resume(); > } > > abortingHTTPClient = false; > HTTPClient->working = false; > HTTPClient->abortNextTime = false; > HTTPClient->OnRequestDone = NULL; > } > //-------------------------------------------------------------------- > ------- void __fastcall > ReverseProxyClientClass::HTTPClientRequestDoneAfterAbort(TObject > *Sender, THttpRequest RqType, WORD ErrCode) > { > HTTPClient->abortComplete = true; > } > //-------------------------------------------------------------------- > ------- > >> from return-to-pool function in worker/client thread. There are >> definable > number of clients per thread. The message pump is as Arno previously > suggested. This code now works fine for 7-12 hours then crashes. Of > course I won't bog you with thousands of lines of code but perhaps > you could tell me if the above sync logic is cool (or not). > > Best Regards, > > SZ -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be