diff --git a/THANKS b/THANKS index ae0dc02c..adf85f05 100644 --- a/THANKS +++ b/THANKS @@ -34,6 +34,7 @@ Georges Basile Stavracas Neto Philipp Nordhus Andreas Obergrusberger Martin Olsson +Mark Pariente Robert Park Mario Sanchez Prada Tiago Quelhas diff --git a/src/engine/util/util-synchronization.vala b/src/engine/util/util-synchronization.vala index 9416d122..36e6ba75 100644 --- a/src/engine/util/util-synchronization.vala +++ b/src/engine/util/util-synchronization.vala @@ -64,10 +64,14 @@ public class SpinWaiter : BaseObject { int64 end_time = get_monotonic_time() + (actual_poll_msec * TimeSpan.MILLISECOND); if (!cond.wait_until(mutex, end_time)) { // timeout passed, allow the callback to run + mutex.unlock(); if (!cb()) { // PollService returned false, abort + mutex.lock(); + break; } + mutex.lock(); } }