Make concurrently accessed globals atomic
Eliminate data races on gHaveTLS, gShutdown, and gDisableBackgroundScheduling by declaring them as atomic. Use explicit load() and store() operations to access them. Note that gHaveTLS requires memory ordering guarantees, and thus, even with a cooperative compiler, the old code would never have been compiled to correct ARM object code. Document a couple of weirdnesses remaining in the code. Bug: 36697681 Test: Boot AOSP, TreeHugger Change-Id: If44a10e31c1e091f06179154e07ced3da0a37b68
Loading
Please register or sign in to comment