On Thu, 20 May 2010, Charles Fleche wrote:

well (e.g. if you write LV2 plugins based on Qt, as I have, you may
uncover some strange bugs).

Really ? What happened ?

When I released the Composite Sampler, I had to solve two tricky bugs:

  1. zynjacku's UI would freeze when loading it.
     Cause: Glib event loop initialization and PyGtk.
     Fix:   zynjacku now initializes the Glib event
            loop, but this comes with some other
            undesirable side-effects.

  2. Ingen would crash at exit if you loaded the
     Composite plugin, and then unloaded it.
     Cause:  When Qt initialized thread-local storage,
             it made an assumption that QtCore would
             only be unloaded at application exit.
     Fix:    Qt's trunk has a fix to clean up TLS
             when the library is unloaded.  I don't
             think it was backported to older
             release branches.[1]

Anyway, Qt is a large framework for cross-platform application development (and very good at that). So, when you use its core library (QString, QThread, etc.) in new and non-standard ways (LV2 plugins) you're liable to find bugs that violate the assumption: "This is a Qt application."

:-)

hth,
gabriel

[1] http://bugreports.qt.nokia.com/browse/QTBUG-9436
_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to