Anton Sviridov wrote:
> Hello!
> I'm writing multithreaded VCL application with following structure:
> - one thread holding a number of sockets receiving data
> - one server thread to provide remote control
> - one main TApplication thread, of course
> All actions with sockets are done within their owner thread.
> All inter-thread stuff is synchronized by events, PostMessage is used
> where possible, so I think no issues here. 
> The question: do I need ADV_MT enabled (i.e., NO_ADV_MT defined)? It
> generates lots of locking/unlocking, which I think are excess in my
> case. Or it's safer to leave the define as is?

If you have instances of TWSocket or descendant in different threads do
not define NO_ADV_MT. The SSL code also relies on that symbol.
However the locking around the winsock library calls are IMO wasted
processor time. This is necessary only to provide a public library 
unload option which is IMO not required. Why would I want to unload 
a loaded library except on application shutdown? 
Possible race conditions on checking whether DLL handle or procedure addresses 
were assigned or not won't hurt if the library was only
unloaded on application shutdown, or am I missing the point?

Arno Garrels 

To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to