To make a short story long :
I have a jucer-derived application with drag-drop from a list. Rather frequently, the app locks up when dropping an item to a target, looping forever in the while-loop at juce_Timer.cpp (ln 213 - 225) (I end up there when breaking execution in the debugger). I had no idea what Timer it was so I added a name to the Timer class, and I found out that it was FadeOutProxyComponent that is the culprit. First of all, it very probably is I who mess things up. Jules, what am I doing (or not doing) that might cause this lockup? (it happens about 2 out of 10 drag-drop operations).
[quote=ājulesā]Youāre barking up the wrong tree there - the Timer thread is always running, so probably has nothing at all to do with it.
Look at the message thread instead, and trace what itās doing - should be easy to see why itās looping.[/quote]
No barking hereā¦ but it is the loop above that is endlessly looping, and the Timer object is a FadeOutProxyComponent (related to a drag-drop operation). Not quite sure what the message thread have to do with a component fade-out function?
Of course you were correct. I had two critical sections cross-accessed where the message thread was one of the threads. Handling the update via AyncUpdater solved it.