diff options
author | Michael I. Bushnell <mib@gnu.org> | 1994-06-01 16:53:40 +0000 |
---|---|---|
committer | Michael I. Bushnell <mib@gnu.org> | 1994-06-01 16:53:40 +0000 |
commit | 2ba5e64c2b076dc57750885b68955cef639162a0 (patch) | |
tree | 4c86378138322667f03c431277a745981ae5e12e /libpager/no-senders.c | |
parent | 950a3c20d5744ab9907a249520b151a176008301 (diff) |
entered into RCS
Diffstat (limited to 'libpager/no-senders.c')
-rw-r--r-- | libpager/no-senders.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/libpager/no-senders.c b/libpager/no-senders.c index 580b936a..0853c0f9 100644 --- a/libpager/no-senders.c +++ b/libpager/no-senders.c @@ -31,7 +31,7 @@ pager_no_senders (struct pager *p, { mutex_lock (&p->interlock); _pager_wait_for_seqno (p, seqno); - _pager_release_seqno (p); + _pager_release_seqno (p, seqno); mutex_unlock (&p->interlock); ports_no_senders (p, mscount); @@ -44,11 +44,24 @@ void pager_clean (void *arg) { struct pager *p = arg; - +#ifdef KERNEL_INIT_RACE + struct pending_init *i, *tmp; +#endif + if (p->pager_state != NOTINIT) { mutex_lock (&p->interlock); _pager_free_structure (p); +#ifdef KERNEL_INIT_RACE + for (i = p->init_head; i; i = tmp) + { + mach_port_deallocate (mach_task_self (), i->control); + mach_port_deallocate (mach_task_self (), i->name); + tmp = i->next; + free (i); + } +#endif + mutex_unlock (&p->interlock); } pager_clear_user_data (p->upi); |