summaryrefslogtreecommitdiff
path: root/code_coverage/seccomp_policy/code_coverage.arm.policy
diff options
context:
space:
mode:
authorTom Cherry <tomcherry@google.com>2020-01-29 14:09:24 -0800
committerTom Cherry <tomcherry@google.com>2020-02-20 14:58:06 -0800
commitf154c8524b67b1293eeca469f1875573bc6d318d (patch)
tree782c50fb0af8d6fab50b0a04789863b893d78c5e /code_coverage/seccomp_policy/code_coverage.arm.policy
parent381fdff5995c52f4d65e50e7b94055a5122b3a73 (diff)
init: handle property service callbacks asynchronously
A previous change moved property_service into its own thread, since there was otherwise a deadlock whenever a process called by init would try to set a property. This new thread, however, would send a message via a blocking socket to init for each property that it received, since init may need to take action depending on which property it is. Unfortunately, this means that the deadlock is still possible, the only difference is the socket's buffer must be filled before init deadlocks. There are possible partial solutions here: the socket's buffer may be increased or property_service may only send messages for the properties that init will take action on, however all of these solutions still lead to eventual deadlock. The only complete solution is to handle these messages asynchronously. This change, therefore, adds the following: 1) A lock for instructing init to reboot 2) A lock for waiting on properties 3) A lock for queueing new properties 4) A lock for any actions with ServiceList or any Services, enforced through thread annotations, particularly since this code was not designed with the intention of being multi-threaded. Bug: 146877356 Bug: 148236233 Test: boot Test: kill hwservicemanager without deadlock Change-Id: I84108e54217866205a48c45e8b59355012c32ea8
Diffstat (limited to 'code_coverage/seccomp_policy/code_coverage.arm.policy')
0 files changed, 0 insertions, 0 deletions