diff options
author | Michael I. Bushnell <mib@gnu.org> | 1994-06-01 16:36:19 +0000 |
---|---|---|
committer | Michael I. Bushnell <mib@gnu.org> | 1994-06-01 16:36:19 +0000 |
commit | 0546e86f71277613c3c89ac72068b594b113bda0 (patch) | |
tree | 1adfb2ee5ee2e544fb531ff0b82ad433a1161832 | |
parent | 9aac03662a06056ed538518f9bf15ca9c0c5bfae (diff) |
Formerly object-terminate.c.~9~
-rw-r--r-- | libpager/object-terminate.c | 21 |
1 files changed, 18 insertions, 3 deletions
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); } |