[LV2] Idle interface and Plugin => UI ringbuffer overflow

Harry van Haaren harryhaaren at gmail.com
Mon Jun 24 18:54:02 PDT 2013


I've been developing a plugin which pops up a "Load" dialog to the user.
This dialog runs "modal" above the main UI: the main interface thread gets
held up.

This is ok for a while, but becomes an issue if constant updates are sent
trough the ringbuffer from the plugin to the UI. The held-up UI thread
can't empty the ringbuffer, and events can get lost.

I'm not sure if this issue has been encountered before?

Possible solution:
Write the plugin so that when the dialog opens, the stream of data is
temporarily halted: no data is written to the ringbuffer => no overflow.

This would fix the problem, with the main disadvantage being that every
plugin must have the data-transmission logic.

This is achievable trough quite easily, but is this the cleanest solution?

GTK & FLTK both have this type of "thread-halting" dialog boxes, and I
presume its the same in QT / other toolkits, so I feel its worth discussing
before attempting the fix mentioned above.

What opinions are out there? Cheers, -Harry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lv2plug.in/pipermail/devel-lv2plug.in/attachments/20130625/432b2446/attachment.htm>

More information about the Devel mailing list