MPS issue job004056

TitlelockEnsureGlobalLock is not thread-safe on Windows
Statusclosed
Priorityoptional
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionSee lockw3.c:

  /* Ensure both global locks have been initialized. */
  /* There is a race condition initializing them. */
AnalysisWindows (as of Vista) provides the function InitOnceExecuteOnce [1] which does what we need.

But we currently support "Windows XP or later" [2] so we can't use this function without either abandoning support for Windows XP, or having some #if to determine what version of Windows we are compiling against.

Microsoft's support for Windows XP expired in April 2014 so maybe enough time has passed for the MPS to drop support too. It's not like we test against it any more.
How foundinspection
Evidence[1] https://msdn.microsoft.com/en-us/library/ms683493.aspx
[2] http://www.ravenbrook.com/project/mps/master/manual/html/guide/overview.html
Created byGareth Rees
Created on2017-02-22 16:13:06
Last modified byGareth Rees
Last modified on2018-07-04 17:06:01
History2017-02-22 GDR Created.

Fixes

Change Effect Date User Description
194409 closed 2018-07-04 16:46:04 Gareth Rees Merge branch 2018-06-27/job004056.