Geary window does not open due to race condition: Bug #737811
Although prior fix for bug #737811 solved problem for some users, apparently Geary still had an issue when upgrading a database with new GLib Mutex implementation, which uses Linux's futexes whenever available. This solution gives the notifying thread a chance to signal the waiter that its work is completed.
This commit is contained in:
parent
ced85aaa8e
commit
b22682d2a2
2 changed files with 5 additions and 0 deletions
1
THANKS
1
THANKS
|
|
@ -34,6 +34,7 @@ Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
|||
Philipp Nordhus <philipp@nhus.de>
|
||||
Andreas Obergrusberger <tradiaz@yahoo.de>
|
||||
Martin Olsson <martin@minimum.se>
|
||||
Mark Pariente <markpariente@gmail.com>
|
||||
Robert Park <rbpark@exolucere.ca>
|
||||
Mario Sanchez Prada <msanchez@igalia.com>
|
||||
Tiago Quelhas <tiagoq@gmail.com>
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue