From b13aa0048929834caaba6aba47e70125bc436e31 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 21 Apr 2005 23:53:49 +0000 Subject: [PATCH] * shared.cc (shared_info::initialize): Test previous version of shared memory magic rather than current version when determining if there has been a shared memory mismatch. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/shared.cc | 16 +++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 264f78743..ee3c3fb31 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2005-04-21 Christopher Faylor + + * shared.cc (shared_info::initialize): Test previous version of shared + memory magic rather than current version when determining if there has + been a shared memory mismatch. + 2005-04-20 Christopher Faylor * sigproc.cc (proc_subproc): Fix handling of waiting for pids with zero diff --git a/winsup/cygwin/shared.cc b/winsup/cygwin/shared.cc index 3d6fddb74..48caefff0 100644 --- a/winsup/cygwin/shared.cc +++ b/winsup/cygwin/shared.cc @@ -195,17 +195,12 @@ void shared_info::initialize () { DWORD sversion = (DWORD) InterlockedExchange ((LONG *) &version, SHARED_VERSION_MAGIC); - if (!sversion) - { - /* Initialize tty table. */ - tty.init (); - } - else + if (sversion) { - if (version != SHARED_VERSION_MAGIC) + if (sversion != SHARED_VERSION_MAGIC) { - multiple_cygwin_problem ("system shared memory version", version, SHARED_VERSION_MAGIC); InterlockedExchange ((LONG *) &version, sversion); + multiple_cygwin_problem ("system shared memory version", sversion, SHARED_VERSION_MAGIC); } while (!cb) low_priority_sleep (0); // Should be hit only very very rarely @@ -214,7 +209,10 @@ shared_info::initialize () heap_init (); if (!sversion) - cb = sizeof (*this); // Do last, after all shared memory initializion + { + tty.init (); /* Initialize tty table. */ + cb = sizeof (*this); /* Do last, after all shared memory initialization */ + } if (cb != SHARED_INFO_CB) system_printf ("size of shared memory region changed from %u to %u", -- 2.43.5