summaryrefslogtreecommitdiff
path: root/libpager/lock-object.c
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-03-06 23:09:51 +0000
committerMiles Bader <miles@gnu.org>1996-03-06 23:09:51 +0000
commit5aea9288fa4ab2c1fee38f6226f214e11e5a9984 (patch)
tree407a87bdd82866c9199e97d6e317e16a58c3c76a /libpager/lock-object.c
parent44c0e147c2e89748143138b952dc9ac63106de56 (diff)
(_pager_lock_object):
Correctly remove LR from P's linked list of lock requests.
Diffstat (limited to 'libpager/lock-object.c')
-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);
}
}