[mythtv] [mythtv-commits] Ticket #1381: Slow keyboard response over

mythtv at zacglen.com.au mythtv at zacglen.com.au
Sun Feb 26 03:48:55 UTC 2006


>> >We might be waiting for a while.  There's no such select() (or similar
>> > stuff)
>> >
>> >in the code that could be causing that. =)
>>
>> Yes, there is.
>> Try an strace and find out the *truth*.
>>
>> Anyone who has done any programming (like myself) will know
>> that QEventLoop()::exec invokes select().
>
>I didn't realize that I had to specifically put "in mythtv" in that sentenc
>e, 
>
>since this is the mythtv mailing list & bug tracker and not the Qt one.  
>
>Silly me.
>
>> This is probably a major top-level design error.
>
>That only happens to a few people?  That's highly doubtful.
>

Really? So top level design flaws always immediate manifest themselves
and are instantly corrected?

Anyhow, for all those doubters out there, here are some stack traces.

A)
#0  0x05449490 in select () from /lib/libc.so.6
#1  0x07173b68 in QEventLoop::processEvents () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#2  0x071e222b in QEventLoop::enterLoop () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#3  0x071c94cf in QApplication::enter_loop () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#4  0x045a750d in MythDialog::exec () from /usr/lib/libmyth-0.19.so.0
#5  0x0806497d in RunMenu (themedir=@0xbfd2b100) at main.cpp:498
#6  0x0806c93a in main (argc=1, argv=0xbfd2b1b4) at main.cpp:1062

B)
> #0  0x05449490 in select () from /lib/libc.so.6
> #1  0x07450f48 in QSocketDevice::waitForMore () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
> #2  0x0478db0d in SipFsm::CheckRxEvent () from /usr/lib/mythtv/plugins/libmythphone.so
> #3  0x047911e2 in SipThread::CheckNetworkEvents () from /usr/lib/mythtv/plugins/libmythphone.so
> #4  0x04792b27 in SipThread::SipThreadWorker () from /usr/lib/mythtv/plugins/libmythphone.so
> #5  0x04792fbb in SipThread::run () from /usr/lib/mythtv/plugins/libmythphone.so
> #6  0x071c2378 in QThreadInstance::start () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
> #7  0x00373947 in start_thread () from /lib/libpthread.so.0
> #8  0x054502ce in clone () from /lib/libc.so.6

Goodness knows what the 'mythphone' stuff is trying to do - call home
I suppose. I have it disabled so why doesn't it just close itself and die?

Anyhow I figure that there might be excessive traffic from creating
new pixmaps when a menu selection highlighting needs to change.
But shouldn't they already exist as offscreen pixmaps?
That would certainly be much more efficient, not to mention faster.



More information about the mythtv-dev mailing list