summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libpager/lock-object.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libpager/lock-object.c b/libpager/lock-object.c
index d4740ee3..4d0ce7c5 100644
--- a/libpager/lock-object.c
+++ b/libpager/lock-object.c
@@ -79,9 +79,11 @@ _pager_lock_object (struct pager *p,
while (lr->locks_pending || lr->pending_writes)
condition_wait (&p->wakeup, &p->interlock);
- if (!--lr->threads_waiting)
+ if (! --lr->threads_waiting)
{
*lr->prevp = lr->next;
+ if (lr->next)
+ lr->next->prevp = lr->prevp;
free (lr);
}
}