[Events] Add an file event wakeup method with socketpair
Open
help wanted
tech debt
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 437
Description
*Description*:
The goal is to create a premitive in `source/common/event` that wakes up (schedules) an event using a socketpair instead of `scheduleCallbackCurrentIteration`. The reason for that is that `scheduleCallbackCurrentIteration` is using ` event_active(&raw_event_, EV_TIMEOUT, 0);` which takes a lock.
See comment in: https://github.com/envoyproxy/envoy/pull/13954#discussion_r533796896
This mechanism could be applied to:
1. `Win32` DirectoryWatcher
2. Replace the wakeup mechanism in `dispatcher_impl.cc` -> `void DispatcherImpl::post(std::function callback)`
For `Win32` it is good to also have #10871 if we are going to build on top of socketpairs
Contributor guide
Assessment
This issue has not been assessed yet.