summaryrefslogtreecommitdiff
path: root/libpager
diff options
context:
space:
mode:
Diffstat (limited to 'libpager')
-rw-r--r--libpager/no-senders.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libpager/no-senders.c b/libpager/no-senders.c
index 0a62cf12..38d1ff72 100644
--- a/libpager/no-senders.c
+++ b/libpager/no-senders.c
@@ -16,13 +16,16 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+#include "priv.h"
+#include <stdio.h>
+#include <mach/notify.h>
+
void
pager_no_senders (struct pager *p,
mach_port_seqno_t seqno,
- mach_port_mscount_t mscount);
+ mach_port_mscount_t mscount)
{
mach_port_t old;
- int ret;
int dealloc;
mutex_lock (&p->interlock);
@@ -67,9 +70,10 @@ pager_clean (void *arg)
struct pager *p = arg;
if (p->pager_state != NOTINIT)
- panic ("pager not terminated"); /* XXX */
-
- pager_clean_user_data (p->upi);
+ {
+ mutex_lock (&p->interlock);
+ _pager_free_structure (p);
+ }
- /* Should remove from list. XXX */
+ pager_clear_user_data (p->upi);
}