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

Reply via email to