On Monday, April 29, 2013 at 9:46 PM, RJ Ryan wrote:
>Some database operations do need transactional semantics for their
>whole operation (i.e. if you were to stop it half-way and commit to
>allow other readers/writers to process) -- for example shuffling a
>playlist. In this case multiple writers could lead to data corruption
>races.
Granted...shuffling wouldn't be considered an interruptible write operation.
Library-rescan and playlist-import could be, though.
>today's approach of doing some operations on the GUI thread blocks Qt
>from processing events. This has implications on Mixxx's
>responsiveness because things like waveform rendering cannot do work
>while the Qt main thread is blocked attempting to read/write from the
>database.
Fair enough. Although C++ doesn't support continuation-style programming very
well, it's at least possible with Qt -- the GUI could set up a database query,
send it to the DB thread via signal, and receive the results via signal, but
oy, that would make the code a lot more complicated...there's gotta be a
simpler way.
Steven Boswell
------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel