On 11/21/2015 2:26 PM, Bob Hood wrote:
On 11/21/2015 1:26 PM, Thiago Macieira wrote:
that are synchronizing using QMutex/QWaitCondition.  In my working
code, I'm getting error messages that look like:

      QWaitCondition: cv destroy failure: Device or resource busy
      QWaitCondition: mutex destroy failure: Device or resource busy
What's the backtrace of those warnings? Which thread were they printed from?

I'm getting them from the child process that has the threads. The process is being launched from a parent using QProcess. I'm trapping the child's stdout and stderr, and these are coming through on the stderr.

I'll attach at debugger to the child and see if I can pinpoint the thread.

Well, my Debugging-fu under Linux is not quite as good yet as it is under Windows. I cannot pin down the precise thread that might be causing this, or even the point in time. However, my gut tells me that it's a race condition where the variables (QMutex/QWaitCondition) are being destroyed before the threads are terminated.

I'm going to try some refactoring of the threading model to see if I can address it that way. This is my first use of wait conditions (although I've used a similar synchronization model in Python). It's a great approach to thread synchronization, but it's turning out to be tricky. :)

Thanks for the help, Thiago. I'll get back to you if I can't address it some other way.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to