From 0546e86f71277613c3c89ac72068b594b113bda0 Mon Sep 17 00:00:00 2001 From: "Michael I. Bushnell" <mib@gnu.org> Date: Wed, 1 Jun 1994 16:36:19 +0000 Subject: Formerly object-terminate.c.~9~ --- libpager/object-terminate.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'libpager/object-terminate.c') diff --git a/libpager/object-terminate.c b/libpager/object-terminate.c index 917d9a79..fe348b76 100644 --- a/libpager/object-terminate.c +++ b/libpager/object-terminate.c @@ -55,6 +55,24 @@ _pager_seqnos_memory_object_terminate (mach_port_t object, _pager_free_structure (p); +#ifdef KERNEL_INIT_RACE + if (p->init_head) + { + struct pending_init *i = p->init_head; + p->init_head = i->next; + if (!i->next) + p->init_tail = 0; + p->memobjcntl = i->control; + p->memobjname = i->name; + memory_object_ready (i->control, p->may_cache, p->copy_strategy); + p->pager_state = NORMAL; + free (i); + } +#endif + + _pager_release_seqno (p, seqno); + mutex_unlock (&p->interlock); + out: ports_done_with_port (p); return 0; @@ -98,7 +116,4 @@ _pager_free_structure (struct pager *p) } p->pager_state = NOTINIT; - _pager_release_seqno (p); - - mutex_unlock (&p->interlock); } -- cgit v1.2.3