* shared.cc (user_shared_initialize): Rework locking so that nothing is checked
until cb is non-zero.
This commit is contained in:
parent
782e53ca69
commit
530d0e0191
@ -189,23 +189,20 @@ user_shared_initialize (bool reinit)
|
|||||||
/* Initialize the Cygwin per-user shared, if necessary */
|
/* Initialize the Cygwin per-user shared, if necessary */
|
||||||
if (!sversion)
|
if (!sversion)
|
||||||
{
|
{
|
||||||
user_shared->version = USER_VERSION_MAGIC;
|
|
||||||
debug_printf ("initializing user shared");
|
debug_printf ("initializing user shared");
|
||||||
user_shared->cb = sizeof (*user_shared);
|
|
||||||
if (user_shared->cb != sizeof (*user_shared))
|
|
||||||
system_printf ("size of user shared region changed from %u to %u",
|
|
||||||
sizeof (*user_shared), user_shared->cb);
|
|
||||||
user_shared->mountinfo.init (); /* Initialize the mount table. */
|
user_shared->mountinfo.init (); /* Initialize the mount table. */
|
||||||
/* Initialize the queue of deleted files. */
|
user_shared->delqueue.init (); /* Initialize the queue of deleted files. */
|
||||||
user_shared->delqueue.init ();
|
user_shared->cb = sizeof (*user_shared);
|
||||||
}
|
}
|
||||||
else if (user_shared->version != USER_VERSION_MAGIC)
|
|
||||||
multiple_cygwin_problem ("user shared memory version", user_shared->version, USER_VERSION_MAGIC);
|
|
||||||
else if (user_shared->cb != sizeof (*user_shared))
|
|
||||||
multiple_cygwin_problem ("user shared memory size", user_shared->cb, sizeof (*user_shared));
|
|
||||||
else
|
else
|
||||||
|
{
|
||||||
while (!user_shared->cb)
|
while (!user_shared->cb)
|
||||||
low_priority_sleep (0); // Should be hit only very very rarely
|
low_priority_sleep (0); // Should be hit only very very rarely
|
||||||
|
if (user_shared->version != sversion)
|
||||||
|
multiple_cygwin_problem ("user shared memory version", user_shared->version, sversion);
|
||||||
|
else if (user_shared->cb != sizeof (*user_shared))
|
||||||
|
multiple_cygwin_problem ("user shared memory size", user_shared->cb, sizeof (*user_shared));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user