envoyproxy/envoy
Ver no GitHub[Events] Add an file event wakeup method with socketpair
Open
#14.244 aberto em 2 de dez. de 2020
help wantedtech debt
Métricas do repositório
- Stars
- (27.997 stars)
- Métricas de merge de PR
- (Mesclagem média 8d) (378 fundiu PRs em 30d)
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:
Win32DirectoryWatcher- Replace the wakeup mechanism in
dispatcher_impl.cc->void DispatcherImpl::post(std::function<void()> callback)
For Win32 it is good to also have #10871 if we are going to build on top of socketpairs