aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/iomgr/wakeup_fd_eventfd.c
Commit message (Collapse)AuthorAge
* Move profiling system to gprGravatar Craig Tiller2015-10-09
|
* clang-format all core filesGravatar Craig Tiller2015-09-22
|
* indent pass to get logical source lines on one physical lineGravatar Craig Tiller2015-09-22
|
* Workqueue: interface, test, and posix implementationGravatar Craig Tiller2015-09-09
|
* clang-format all sourceGravatar Craig Tiller2015-08-18
|
* Allow specific pollers to be wokenGravatar Craig Tiller2015-07-29
| | | | | | | | | | | | | | | | | | | Currently, if two threads call grpc_completion_queue_pluck on the same completion queue for different tags, there is a 50% chance that we deliver the completion wakeup to the wrong poller - forcing the correct poller to wait until its polling times out before it can return an event up to the application. This change tweaks our polling interfaces so that we can indeed wake a specific poller. Nothing has been performance tuned yet. It's definitely sub-optimal in a number of places. Wakeup file-descriptors should be recycled. We should have a path that avoids calling poll() followed by epoll(). We can probably live without it right at the second though. This code will fail on Windows at least (I'll do that port when I'm in the office and have a Windows machine).
* Fix link errorGravatar Craig Tiller2015-02-02
|
* Rename wakeup_fd.[hc] to wakeup_fd_posix.[hc]Gravatar David Klempner2015-01-26
| | | | | Fix the transitive closure of this change, including reintroducing pollset_kick_posix/windows where the latter is just a stub.
* Refactor the pipe/eventfd abstractionGravatar David Klempner2015-01-26
This introduces the wakeup fd interface, corresponding approximately to the existing Google version, complete with a ported giant detailed usage comment. The implementation has two layers, "specialized" and "fallback". The specialized layer is intended to be a suitable platform specific implementation like eventfd, whereas "fallback" is probably pipe, with runtime detection of whether the specialized version works on this system (currently stubbed out).