summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2002-04-02 02:06:59 +0000
committerNeal H. Walfield <neal@gnu.org>2002-04-02 02:06:59 +0000
commit7f0f4a829b4ec0c5917f3d5e7b7f2af88149b138 (patch)
tree1e14fa01a75defaf8e19ecd958820b24be145aed
parent4e5e1542df8abcbbbf052f015b46820a0608d6d1 (diff)
2002-04-01 Neal H Walfield <neal@cs.uml.edu>
* data-request.c (_pager_seqnos_memory_object_data_request): Must hold P->interlock when calling _pager_allow_termination.
-rw-r--r--libpager/data-request.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/libpager/data-request.c b/libpager/data-request.c
index 95ec6d27..82d9b552 100644
--- a/libpager/data-request.c
+++ b/libpager/data-request.c
@@ -1,5 +1,5 @@
/* Implementation of memory_object_data_request for pager library
- Copyright (C) 1994, 1995, 1996, 1997, 2000 Free Software Foundation
+ Copyright (C) 1994,95,96,97,2000,02 Free Software Foundation
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -130,17 +130,13 @@ _pager_seqnos_memory_object_data_request (mach_port_t object,
ports_port_deref (p);
return 0;
- allow_term_out:
- mutex_lock (&p->interlock);
- _pager_allow_termination (p);
- mutex_unlock (&p->interlock);
- ports_port_deref (p);
- return 0;
-
error_read:
memory_object_data_error (p->memobjcntl, offset, length, EIO);
_pager_mark_object_error (p, offset, length, EIO);
+ allow_term_out:
+ mutex_lock (&p->interlock);
_pager_allow_termination (p);
+ mutex_unlock (&p->interlock);
ports_port_deref (p);
return 0;