DescriptionSubzero: Fixed deadlock when _start is first function
It was previously the case that instrumentStart in ASanInstrumentation would block until instrumentGlobals had completed. This was because instrumentStart depends on the global redzones having been inserted. However, instrumentGlobals was not called until the first function was popped off the emit queue, and when _start was the first function, it was not placed on the emit queue until after it had been instrumented and lowered. instrumentStart was waiting for instrumentGlobals, which could not happen until instrumentStart completed.
BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4374
R=kschimpf@google.com, stichnot@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=2c9992a596475c09234ee69e66b5ae715ca33124
Patch Set 1 #
Total comments: 9
Patch Set 2 : Added condition variable and moved synchronization to Instrumentation #
Total comments: 6
Patch Set 3 : Fixes, added destructor to please minimal build linker #Patch Set 4 : Moved an include to the proper file #
Messages
Total messages: 12 (4 generated)
|