| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile
src/core/iomgr/pollset_posix.c
src/core/surface/call.c
src/core/surface/channel.c
src/core/surface/server.c
src/python/src/grpc/_adapter/_low_test.py
tools/doxygen/Doxyfile.core.internal
|
| |\
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/core/iomgr/fd_posix.h
src/core/iomgr/iomgr.c
|
|\| | |
|
| | |
| | |
| | |
| | |
| | | |
This allows a list of them to be dumped to isolate where memory leaks
are occuring.
|
| | | |
|
| |/
| |
| |
| |
| | |
alarm_test, tcp_posix, fd_posix, pollset_posix, credentials, call,
channel, server, child_channel
|
| | |
|
| |
| |
| |
| |
| | |
Allow multiple threads to be polling
Remove unnecessary windows stubs
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/core/surface/call.c
test/core/end2end/dualstack_socket_test.c
test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c
test/core/end2end/tests/early_server_shutdown_finishes_tags.c
test/core/end2end/tests/graceful_server_shutdown.c
test/core/end2end/tests/invoke_large_request.c
test/core/end2end/tests/max_concurrent_streams.c
test/core/end2end/tests/max_message_length.c
test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c
test/core/end2end/tests/request_response_with_metadata_and_payload.c
test/core/end2end/tests/request_response_with_payload.c
test/core/end2end/tests/request_response_with_payload_and_call_creds.c
test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c
test/core/end2end/tests/request_with_large_metadata.c
test/core/end2end/tests/request_with_payload.c
test/core/httpcli/httpcli_test.c
tools/run_tests/run_tests.py
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
| |
Previously this test assumed all bytes would be read in one request.
Also update test to use grpc_init() so that we can enable tracing.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
BUILD
src/core/iomgr/tcp_server.h
src/core/iomgr/tcp_server_posix.c
src/core/iomgr/tcp_server_windows.c
src/core/security/server_secure_chttp2.c
src/core/surface/completion_queue.c
src/core/surface/completion_queue.h
src/core/surface/server.c
test/core/end2end/tests/cancel_after_invoke.c
test/core/end2end/tests/cancel_test_helpers.h
tools/run_tests/tests.json
vsprojects/vs2013/Grpc.mak
|
| |\ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A previous fix to make close() occur later can cause socket reuse by servers to fail as previous sockets are left asynchronously open.
This change:
- adds a callback to TCP server shutdown to signal that the server is completely shutdown
- wait for that callback before destroying listeners in the server (and before destroying the server)
- handles fallout
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| | |
A previous fix to make close() occur later can cause socket reuse by servers to fail as previous sockets are left asynchronously open.
This change:
- adds a callback to TCP server shutdown to signal that the server is completely shutdown
- wait for that callback before destroying listeners in the server (and before destroying the server)
- handles fallout
|
|/
|
|
|
|
|
|
| |
-) You can't assume bash is installed. Scripts needs to be cleaned out of bashisms.
-) You can't assume python is in /usr/bin. Use env instead.
-) AF_INET is in sys/socket.h
-) Added port_platform's basic structure for FreeBSD, based off Darwin.
-) FreeBSD doesn't have and doesn't need libdl for OpenSSL.
|
| |
|
|
|
|
| |
Dramatically lowers (eliminates maybe?) false negatives from ?SAN runs.
|
|\
| |
| | |
Fix TSAN reported error in fd_posix.c
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
We now pass down pointers to closures instead of (callback, arg) pair
elements separately. This allows us to store one word atomically, fixing
a race condition.
All call sites have been updated to the new API. No new allocations are
incurred. grpc_fd_state is deleted to avoid any temptation to ever add
anything there again.
|
| |
|
| |
|
|
|
|
|
|
| |
Allow binding a different completion queue to each registered method.
This will allow multiplexing for the C++ server between sync & async
methods more easily.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
1. Init the freelist_mu in the forced-fallback path
2. Free allocated memory in the test_over_free test case.
|
|
|
|
| |
fixing all subsequent errors.
|
|\
| |
| | |
Add support for eventfd based kicking on linux.
|
| | |
|
| |\
| | |
| | |
| | |
| | | |
This includes nuking the special pollset_kick_windows.h, since it is no
longer relevant.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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).
|
| |/
|/| |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This adds support for eventfd based kicking, with the skeleton of
support for runtime selection between eventfds and pipes.
|
| | |
|
|/ |
|
|
|
|
|
| |
This caps the size of the poll kick freelist at the arbitrary value of
25.
|
| |
|
|
|
|
|
|
|
|
|
| |
This change pulls out a separate pollset_kick module, which currently
uses a freelist of pipes dynamically assigned to pollsets when they
enter polling rather than the previous racy sharding mechanism.
We ultimately may wish to eliminate the dynamic assignment for multipoll
sets, but this should be sufficient for the moment.
|