diff options
author | yvt <i@yvt.jp> | 2021-06-20 23:29:16 +0900 |
---|---|---|
committer | yvt <i@yvt.jp> | 2021-06-21 00:07:26 +0900 |
commit | 602c02edd29029ab16e988e4bb5e2cddc1c1da5b (patch) | |
tree | 99537e08c963017bed83b35ebc83aa0001d32a0c /components/script/dom/gpucomputepipeline.rs | |
parent | 18c79cafac8c93a4521d1f9eeae646068dbaa36f (diff) | |
download | servo-602c02edd29029ab16e988e4bb5e2cddc1c1da5b.tar.gz servo-602c02edd29029ab16e988e4bb5e2cddc1c1da5b.zip |
fix(bhm): deliver exit signal reliably (for real)
> However, as it turns out, `crossbeam-channel`'s channels don't drop
> remaining messages until all associated senders *and* receivers are
> dropped. This means the exit signal won't be delivered as long as
> there's at least one `HangMonitorRegister` or
> `BackgroundHangMonitorChan` maintaining a copy of the sender. To work
> around this and guarantee a rapid delivery of the exit signal, the
> sender is wrapped in `Arc`, and only the worker thread maintains a
> strong reference, thus ensuring both the sender and receiver are
> dropped as soon as the worker thread exits.
Diffstat (limited to 'components/script/dom/gpucomputepipeline.rs')
0 files changed, 0 insertions, 0 deletions