Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-04-22 03:53:49 +0400
committerChristopher Faylor <me@cgf.cx>2005-04-22 03:53:49 +0400
commitb13aa0048929834caaba6aba47e70125bc436e31 (patch)
tree2a857f2c93c14e5e68e6e7b1e4f19c73da1b9fb3 /winsup
parent6794d799144dd2aa1faa5094358388944abce5ac (diff)
* 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.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/shared.cc16
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 <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
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",