| Commit message (Collapse) | Author | Age |
... | |
|\ |
|
| |
| |
| |
| | |
Remove existing UDS listeners IFF they are a socket before trying to create a new socket.
|
| |
| |
| |
| |
| | |
This prevents a bug whereby not all fds were destroyed at application
exit.
|
| | |
|
|\| |
|
| | |
|
|\|
| |
| |
| |
| | |
Conflicts:
Makefile
|
|\ \ |
|
| | |\
| | |/
| |/| |
|
| | | |
|
| | | |
|
| |/
| |
| |
| |
| |
| |
| | |
-) Let's not use _POSIX_SOURCE. It usually implies too much C99. _BSD_SOURCE would be the right thing to do here.
-) _BSD_SOURCE is getting deprecated by glibc, so we also have to define _DEFAULT_SOURCE under Linux.
-) accept4 and eventfd arn't as old as we may think; let's detect for it.
-) stdint.h interferes with all these definitions if included too early; let's move it down.
|
|/
|
|
|
|
| |
Allow binding a different completion queue to each registered method.
This will allow multiplexing for the C++ server between sync & async
methods more easily.
|
| |
|
| |
|
|
|
|
|
|
|
| |
1. Close the epoll_fd at destroy
2. Finish the comment about signal/broadcast on the cv
3. Rename GPR_POSIX_MULTIPOLL_WITH_EPOLL to
GPR_LINUX_MULTIPOLL_WITH_EPOLL
|
| |
|
|\ |
|
| |\
| | |
| | | |
Windows port of iomgr.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a multipoller based on epoll rather than poll.
Note that this implementation is aimed at correctness rather than
performance, although it should immediately have better scalability to
large numbers of FDs, both due to epoll's O(1) sized API and due to not
needing to wake up polling threads to do interest set changes.
One notable difference here is that we directly attach a wakeup fd
rather than using the freelisting kick mechanism that the poll() based
implementations use, because modifying the epoll set to use a different
kick fd each time isn't free.
|
|/ /
| |
| |
| |
| |
| |
| | |
This avoids an unnecessary upgrade to multipoller if there was no
do_work called between an orphan and a subsequent add. Additionally, it
avoids the need for epoll based multipoller to check for this case in
its upgrade code by ensuring all existing fds are valid at upgrade time.
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| |/
|/|
| |
| | |
Change the fd watcher from being O(active_pollers) to O(1), reducing time spent under the fd->watcher_mu lock, and ultimately scaling us much better.
|
| |
| |
| |
| |
| | |
This was an observed source of contention at higher thread counts where
we could overrun the freelist cap.
|
| | |
|
| |
| |
| |
| | |
There's no need for this branch at all.
|
| |
| |
| |
| | |
Theres no need for every thread to exit polling early if an alarm might finish, so there's no need to contend here.
|
|\ \
| | |
| | | |
Fix up feature test macros
|
| | | |
|
| | |\
| | | |
| | | |
| | | |
| | | | |
Conflicts:
include/grpc/support/time_win32.h
|
| | | |
| | | |
| | | |
| | | |
| | | | |
-) Client code is now threadsafe.
-) The echo_client code runs and succeeds.
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Move all feature test macros to the start of the file and check that
they aren't already defined or defined to a lower value than the file
needs.
Projects should be allowed to put these in CFLAGS and we shouldn't break
when they do.
|
|\| | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Caveats:
-) The win32 pollset isn't threadsafe (yet).
-) Only client code is implemented.
-) Only very simple code has been tested with it yet.
|
| |/
| |
| |
| | |
The background_callback_executor may sit on the condition as well. If we're not broadcasting the condition, it may eat the condition signal, and starve the shutdown sequence of it.
|
|\| |
|
| | |
|
|\| |
|
| |\
| | |
| | | |
Properly selecting chunks of code for the wakeup fd codepath.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
1. Init the freelist_mu in the forced-fallback path
2. Free allocated memory in the test_over_free test case.
|
|\| | |
|
| |\ \
| | | |
| | | | |
Fix some TSAN reported errors
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Also fix log_posix to get things compiling.
|
| | | | |
|