Change History (11)

I can't say anything because it's not clear what is going on with the application when it happens. Does it hang? You should somehow track the execution tho the point this assertion is printed -- we need the call stack of this thread at least. Error 301 means the semaphore is closed while being waited on in another thread which usually means a crash.

As we already saw earlier, VLC does some strange things with QApplication::quit() which I don't fully understand. Error 301 may also mean that a thread gets killed upon termination instead of being properly shutdown.

Exec() runs the message queue, so it may be quite difficult to get to the breakpoint by stepping into it (there will be tons of unrelated messages).

Do you know how to use PROCDUMP? Using it + the breakpoints right after the mentioned assertions, you will for sure get a dump from which we will be able to extract the call stack. More details are in comment 22 of #88. Feel free to ask if something's not clear.

Yes, this is a copy-paste bug that affected adopted threads (i.e. foreign threads not started with QThread::start()). Thank you for spotting it! Fixed in r747. Do I understand it right that this fixes the problem completely for you? No more crashes or hangs at VLC termination?