Hello: I'm having a problem with the TWSocketThrdServer. My application has a worker thread that contains a TWSocketThrdServer member to handle all incoming requests. When the main thread finishes, it sends a WM_QUIT message to the worker thread, which then finishes and frees the TWSocketThrdServer. However, if there are clients connected, the thrdserver stalls in its destructor, while waiting for all its threads to finish.
It only loops forever when there are clients connected and the worker thread is terminated. But if there are no clients connected, it works fine. Can someone offer any help? Most likely I'm doing something wrong. (Below is an example of my code.) Also, I need to be able to terminate the entire application if something goes wrong while processing clients. What is the best way to do this? Should I post a message to the main thread from a TWSocketThrdServer event in the worker thread? Thanks! dZ. My code is somewhat like this (this is very much simplified): Interface Type TServerThrd = Class(TThread) Private FSocketSrv: TWSocketThrdServer; Public Constructor Create; Reintroduce; Destructor Destroy; Override; Procedure Execute; Override; End; TQApp = Class(TObject) Private FServerThrd : TServerThrd; Public Constructor Create; Destructor Destroy; Override; End; Implementation { TQApp } Constructor TQApp.Create; Begin FServerThrd := TServerThrd.Create(False); End; Destructor TQApp.Destroy Begin Try Try PostThreadMessage(FServerThrd.ThreadID,WM_QUIT,0,0); Finally FServerThrd.WaitFor; FServerThrd.Free; End; Finally Inherited Destroy; End; End; { TServerThrd } Constructor TServerThrd.Create; Begin Inherited Create(True); End; Destructor TServerThrd.Destroy; Begin Try If Assigned(FSocketSrv) Then Begin FSocketSrv.Free; // <<-- HERE! (waits forever) End; Finally Inherited Destroy; End; End; Procedure TServerThrd.Execute; Begin Try FSocketSrv := TWSocketThrdServer.Create(Nil); FSocketSrv.Listen(); FSocketSrv.MessageLoop; Finally // do other cleanup End; End; -- 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