Mir

Comment 7 for bug 1560900

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

OK, as a quick hack this failure is fixed by:

=== modified file 'src/server/compositor/buffer_queue.cpp'
--- src/server/compositor/buffer_queue.cpp 2016-03-22 02:29:50 +0000
+++ src/server/compositor/buffer_queue.cpp 2016-03-23 18:13:36 +0000
@@ -554,7 +554,7 @@

     buffers_owned_by_client.push_back(buffer);

- lock.unlock();
+// lock.unlock();
     try
     {
         give_to_client_cb(buffer);

But I need to have a closer look at BufferQueue and its locking - as the lock is also released by the code a few lines above:

        snapshot_released.wait(lock,
            [&]{ return !contains(buffer, pending_snapshots); });