I am developing an application that uses both a TWSocketServer/TTcpSrvClient for TCP comms and a THttpCli to retrieve periodic images over HTTP. I'm doing this in C++ in BDS2006.

All components are created (new) in code, so not present on the forms, and then deleted in class destructors.

Now, before I added the THttpCli, everything was fine. Startup, normal comms operation, and shutdown went without a hitch and no exceptions fire. Even Codeguard was happy.

However, now I've added the THttpCli component, I can't find a way to shutdown the application without exceptions & lockups.

In normal operation, the component works. It will retrieve images (every 30 seconds [TTimer] from a video server) if the network is up, OnSocketError fires if the connection is down.

But, when I try to terminate the program, I can't get a clean shutdown. Depending on what I've tried, I get exceptions or lockups/hangs.

Deleting the component the moment the class destructor is called fails, as the component could be in the middle of an operation (I am in a high latency environment). Calling Abort() at this time seems to just hang (the operational routine I have ever returns from the component).

What is the 'correct' way to cleanly shutdown the THttpCli component, whilst it could be in use?



To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to