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); });
OK, as a quick hack this failure is fixed by:
=== modified file 'src/server/ compositor/ buffer_ queue.cpp' compositor/ buffer_ queue.cpp 2016-03-22 02:29:50 +0000 compositor/ buffer_ queue.cpp 2016-03-23 18:13:36 +0000
--- src/server/
+++ src/server/
@@ -554,7 +554,7 @@
buffers_ owned_by_ client. push_back( buffer) ;
- lock.unlock();
give_ to_client_ cb(buffer) ;
+// lock.unlock();
try
{
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:
[&]{ return !contains(buffer, pending_snapshots); });