U++ framework
Do not panic. Ask here before giving up.

Home » U++ Library support » U++ MT-multithreading and servers » Deadlock - what LeaveGMutexAll does?
Re: Deadlock - what LeaveGMutexAll does? [message #35067 is a reply to message #35037] Sat, 07 January 2012 13:21 Go to previous messageGo to previous message
pete82 is currently offline  pete82
Messages: 3
Registered: November 2011
Junior Member
I solved it by queing all "Refresh" and all the other GUI calls to the main thread (which is quite uncomfortable).

Thank you for explanation, but do i understand correctly (also looking at the code), that the main thread is unlocking lock which it doesn't own? This looks really bad to me. The classic method to avoid deadlocks is to acquire them in some fixed order, but it fails then.
Basically, can this happen? (GM-GMutex,OM-other mutex,T-thread,MT-main thread)
T: GM->OM->GM unlocked, preempted
MT:waiting on GM->GM->waiting on OM
T: ->waiting on GM
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Htmls / HtamlTag class and table generation
Next Topic: What is the status of IPv6 support?
Goto Forum:
  


Current Time: Sat Oct 03 14:52:46 GMT+2 2026

Total time taken to generate the page: 0.08389 seconds