On 06/09/17 16:19, Sven Barth via Lazarus wrote: > Am 06.09.2017 16:48 schrieb "el es via Lazarus" > <lazarus@lists.lazarus-ide.org <mailto:lazarus@lists.lazarus-ide.org>>:
>> - could the un-yielded code path lead to over-zealous enqueuing of the >> ShowStatus routine? >> - if yes, what would happen in such case? > > Both Synchronize and Sleep already causes a thread switch (the former cause > it will wait for the main thread to finish processing). Also I already > suggested TThread.Yield which is the same as ThreadSwitch. > And as he wrote the Sleep(1) solves the problem for him. > It's a pity though that this seems to be necessary on Mac OS X :/ > > Regards, > Sven It is neccessary in Windows for me too (but i have the opposite problem : the thread-processing can be a lot shorter - hardware communications - than the time slice of the main thread, giving several Queue() or Synchronize() calls as a result;) Because of that, I have to use a tthreadlist as a buffer between the thread and the main thread. The time where I was hunting an elusive problem that did not happen under debugger, is never lost ;) -l. -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus