* 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.
This commit is contained in:
Christopher Faylor 2005-04-21 23:53:49 +00:00
parent 6794d79914
commit b13aa00489
2 changed files with 13 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2005-04-21 Christopher Faylor <cgf@timesys.com>
* 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 <cgf@timesys.com>
* sigproc.cc (proc_subproc): Fix handling of waiting for pids with zero

View File

@ -195,17 +195,12 @@ void
shared_info::initialize ()
{
DWORD sversion = (DWORD) InterlockedExchange ((LONG *) &version, SHARED_VERSION_MAGIC);
if (!sversion)
if (sversion)
{
/* Initialize tty table. */
tty.init ();
}
else
{
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",