sigchain: always call InitializeSignalChain on startup.
Processes that link against libsigchain because they might want to dynamically load libart.so (e.g. surfaceflinger) might never explicitly call InitializeSignalChain. In this scenario, the lazy initialization that occurs when sigprocmask is called can happen at unexpected times, such as from pthread_exit, leading to deadlocks or crashes. Add __attribute__((constructor)) to InitializeSignalChain to have it be automatically called upon process start. Keep the existing calls to it in the wrapper functions in order to sidestep problems around static initialization order. Bug: https://issuetracker.google.com/37119593 Test: run-test 004-SignalTest Test: m test-art-host Test: m test-art-target Change-Id: I7906c1f625ccca0350ea9310140a3f43a657be4c (cherry picked from commit fd4d0d3e)
Loading
Please sign in to comment