08-07-2018, 12:07 AM
rlebeau >> Then you are probably using it wrong, like synching worker threads when you should not be. For instance, syncing synchronously with the main UI thread while it is blocked trying to shutdown the server. To avoid that, use asynchronous syncs, or shutdown the server in a separate thread rather than in the UI thread.
All my VCL updates are done from the main thread, triggered via PostMessage. My Indy threads never touch UI components.
rlebeau >> Processes can ALWAYS be killed via the Task Manager, especially from the Processes tab rather than then Applications tab.
Not in this case. Clicking the "End Process" button on the Processes tab will knock the thread count from 11 or so down to 1 but that last thread will not die. Clicking End Process over and over again does nothing. Finding the thread in Process Explorer and trying to kill it there also does nothing. Rebooting is the only solution.
rlebeau >> Hard to diagnose without seeing your actual code (or a demo that reproduces the same issue).
At 63K lines across 66 source files, that's probably not an option. It's also my flagship commercial product.
rlebeau >> Also, why not use your TIdHTTPServer for your WebSocket server (since WebSocket starts life as HTTP)?
How do you do two-way asynchronous communication with TIdHTTPServer?
All my VCL updates are done from the main thread, triggered via PostMessage. My Indy threads never touch UI components.
rlebeau >> Processes can ALWAYS be killed via the Task Manager, especially from the Processes tab rather than then Applications tab.
Not in this case. Clicking the "End Process" button on the Processes tab will knock the thread count from 11 or so down to 1 but that last thread will not die. Clicking End Process over and over again does nothing. Finding the thread in Process Explorer and trying to kill it there also does nothing. Rebooting is the only solution.
rlebeau >> Hard to diagnose without seeing your actual code (or a demo that reproduces the same issue).
At 63K lines across 66 source files, that's probably not an option. It's also my flagship commercial product.
rlebeau >> Also, why not use your TIdHTTPServer for your WebSocket server (since WebSocket starts life as HTTP)?
How do you do two-way asynchronous communication with TIdHTTPServer?

