From 901c61a1d25e7c8963e51012760a82730eda1910 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 23 Sep 2012 00:04:06 +0200 Subject: Fix pager deadlock http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00127.html * libpager/lock-object.c (_pager_lock_object): Release interlock before calling memory_object_lock_request, to let the callbacks take it. --- libpager/lock-object.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libpager/lock-object.c b/libpager/lock-object.c index d108666e..d8d4a1b7 100644 --- a/libpager/lock-object.c +++ b/libpager/lock-object.c @@ -65,9 +65,11 @@ _pager_lock_object (struct pager *p, } } + mutex_unlock (&p->interlock); memory_object_lock_request (p->memobjcntl, offset, size, should_return, should_flush, lock_value, sync ? p->port.port_right : MACH_PORT_NULL); + mutex_lock (&p->interlock); if (sync) { -- cgit v1.2.3