[mythtv] Re: [mythtv-commits] mythtv commit: r7312 by danielk

Isaac Richards ijr at case.edu
Sun Sep 25 23:59:32 UTC 2005


On Sunday 25 September 2005 07:38 pm, Daniel Kristjansson wrote:
> On Sun, 2005-09-25 at 18:48 -0400, Isaac Richards wrote:
> > And that anything that inherits from QObject should only be
> > created/destroyed by the main Qt event loop thread?
>
>> You do realize that signals are sent & received by the same thread, right?
> Yep, it is just used to send a QWaitCondition::wakeAll()...

I've just been using regular function calls instead of signals in new code.  
Easier, generally, especially if it never needs to be connected generically.

> I found the documentation for this...
>     http://doc.trolltech.com/3.3/threads.html
>
> It is ok to create a QObject outside of the Qt event thread,
> but it can not be deleted while another class is sending it
> a signal (for obvious reasons...)

Pretty sure it's creation, too.  Last I checked the Qt source, at least, it 
was.

> To avoid needing to disconnect all slots before deletion,
> QObject contains a "deleteLater()" method that queues it
> up for proper deletion the next time the event loop runs.

Signals are sent immediately, though.  They aren't queued at all.

> I'll make sure I use this on the recorders, and I'll check the
> other QObject classes I know about...

It's just a race condition, really - shouldn't _crash_ things, but still would 
be good to fix.

Isaac


More information about the mythtv-dev mailing list