sapling/eden
Jon Maltiel Swenson 79b7db4d91 Make EventBase destruction callbacks safely cancellable
Summary: Currently, `runOnDestruction` aims to be thread-safe; new callbacks are added to the `onDestructionCallbacks_` list while the associated mutex is held. However, the caller may own the `LoopCallback` and wish to destroy/cancel it before the `EventBase` destructor runs, and this callback cancellation is not thread-safe, since unlinking does not happen under the lock protecting `onDestructionCallbacks_`. The primary motivation of this diff is to make on-destruction callback cancellation thread-safe; in particular, it is safe to cancel an on-destruction callback concurrently with `~EventBase()`.

Reviewed By: spalamarchuk

Differential Revision: D13440552

fbshipit-source-id: 65cee1e361d37647920baaad4490dd26b791315d
2019-01-24 15:57:39 -08:00
..
benchmarks Cut most of the remaining Thrift SASL integration 2018-11-19 22:40:44 -08:00
cli remove some dedent() calls in the eden doctor tests 2019-01-24 13:47:41 -08:00
docs add a caching strategy document 2018-12-06 12:33:31 -08:00
fs Make EventBase destruction callbacks safely cancellable 2019-01-24 15:57:39 -08:00
integration Fix race in test_exit_kills_manager systemd test 2019-01-24 15:24:52 -08:00
py eden: add a script to build the eden client executable for oss builds 2019-01-15 14:14:32 -08:00
scripts unmount stale edenfs mounts in eden doctor 2018-01-19 11:06:51 -08:00
test_support Allow systemd opt-in via config 2018-12-10 16:30:06 -08:00
test-data add more files to the basic snapshot 2018-11-26 12:28:52 -08:00
third-party Update FUSE kernel API 2018-10-29 11:17:14 -07:00
win include utils/Bug.{h,cpp} in the Windows build 2019-01-24 13:47:41 -08:00
.pyre_configuration.local Upgrade fbcode version to 582b061f224f7c6bf7dc1634568927bca06f672a 2019-01-24 11:37:55 -08:00
Eden.project.toml Eden.project.toml file for Nuclide 2018-04-26 11:05:23 -07:00