On 17 May 2010, at 16:00, Brad Campbell wrote:

Michael Van Canneyt wrote:
I think that what you did is the only right solution. Synchronizing
threads is tricky, and the default mechanism is meant for GUI apps where the main thread is the GUI thread.

I wish there was a way for a thread to asynchronously notify the main thread there is a Synchronize() pending. On Linux I can insert an fd() for a pipe into the gtk event loop and poke data into the pipe from the thread. It's incredibly efficient and saves all the waiting and polling. I've not worked out how to do this on OSX or Win32 yet though.

If you use the timeout parameter from CheckSynchronize, you do get that effect (if you pass high(longint) as timeout, then you only "poll" if nothing happened for 2^31 miliseconds, which is about 24 days).


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to