aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/iomgr/ev_epoll1_linux.cc
Commit message (Collapse)AuthorAge
* Avoid the thread jump in server callback APIs.Gravatar Guantao Liu2019-01-07
| | | | | | | Add a utility function in iomgr to check whether the caller thread is a worker for any background poller, and keep grpc combiner from offloading closures to the default executor if the current thread is a worker for any background poller.
* Extend ev_posix.* to prepare for the new background poller 'epollbg',Gravatar Guantao Liu2018-11-19
| | | | | | | | | and get rid of the dependency loop on the grpc shutdown path. Make sure all background closures are complete before shutting down the other grpc modules. Avoid using the backup poller in TCP endpoints if using the background poller.
* Use union to make alignement robust.Gravatar Soheil Hassas Yeganeh2018-10-19
| | | | Suggested-by: vjpai@google.com
* Do not waste cache lines with unnecessary paddings.Gravatar Soheil Hassas Yeganeh2018-10-19
| | | | | | Make sure paddings are GPR_CACHELINE_SIZE minus the size of fields in that cache line. Otherwise, we will waste an additional cache line for no good reason.
* Add TODO in fd_global_shutdown()Gravatar Juanli Shen2018-09-27
|
* Support gRPC Python client-side fork with epoll1Gravatar Eric Gribkoff2018-08-22
| | | | | | | | | | | | | | | | | A process may fork after invoking grpc_init() and use gRPC in the child if and only if the child process first destroys all gRPC resources inherited from the parent process and invokes grpc_shutdown(). Subsequent to this, the child will be able to re-initialize and use gRPC. After fork, the parent process will be able to continue to use existing gRPC resources such as channels and calls without interference from the child process. To facilitate gRPC Python applications meeting the above constraints, gRPC Python will automatically destroy and shutdown all gRPC Core resources in the child's post-fork handler, including cancelling in-flight calls (see detailed design below). From the client's perspective, the child process is now free to create new channels and use gRPC.
* Merge masterGravatar Yash Tibrewal2018-07-27
|\
| * Remove the notifier pollset from grpc event engine since it's not used anywhereGravatar Yash Tibrewal2018-07-26
| |
* | Add API to grpc event engines to forcibly set underlying fd to be ↵Gravatar Yash Tibrewal2018-07-26
|/ | | | readable/writable/errored
* Merge pull request #15648 from apolcyn/remove_fd_shutdown_already_closedGravatar apolcyn2018-06-12
|\ | | | | Remove already_closed param from fd_orphan
* \ Merge branch 'master' into epollerrGravatar Yash Tibrewal2018-06-11
|\ \
* | | More commentsGravatar Yash Tibrewal2018-06-08
| | |
| | * Remove already_closed param from fd_orphanGravatar Alexander Polcyn2018-06-07
| |/
* | Add more detailed commentsGravatar Yash Tibrewal2018-06-05
| |
* | merge masterGravatar Yash Tibrewal2018-05-31
|\ \
| | * Merge branch 'master' into prototype-cfstreamGravatar Muxi Yan2018-05-22
| | |\ | | |/ | |/|
| | * CommentsGravatar Muxi Yan2018-05-16
| | |
| | * Change existing build system for CFStreamGravatar Muxi Yan2018-05-15
| | |
| * | Change trace logging to use GPR_INFO instead of GPR_DEBUG.Gravatar Mark D. Roth2018-04-25
| |/
* / Make linux polling engines capable of tracking errors separately withGravatar Yash Tibrewal2018-04-20
|/ | | | backward compatibility.
* Add a sanity check for inclusion of port_platform.hGravatar Alexander Polcyn2018-02-23
|
* Run clang fmtGravatar Noah Eisen2018-02-09
|
* Autofix c casts to c++ castsGravatar Noah Eisen2018-02-09
|
* Merge branch 'master' into gpr_reviewGravatar Vijay Pai2018-02-08
|\
| * Merge branch 'master' into gpr_review_tlsGravatar Vijay Pai2018-02-08
| |\
* | | Privatize useful.h and avl.hGravatar Vijay Pai2018-02-02
| |/ |/|
* | Deprecate GPR_TIMER_BEGIN/END and replace with GPR_TIMER_SCOPE.Gravatar yang-g2018-01-31
| |
| * Privatize thread-local storage headersGravatar Vijay Pai2018-01-25
|/
* Use DEBUG level for polling engine trace logs.Gravatar yang-g2018-01-24
|
* Rename 'gpr++' directories to 'gprpp'.Gravatar Mark D. Roth2018-01-19
|
* Split lib/support into lib/gpr and lib/gpr++.Gravatar Mark D. Roth2018-01-18
|
* Eliminate GRPC_LINUX_LEGACY_EPOLLGravatar Mehrdad Afshari2018-01-17
| | | | | | | Rename: GRPC_LINUX_LEGACY_EPOLL to GRPC_LINUX_EPOLL, and GRPC_LINUX_EPOLL to GRPC_LINUX_EPOLL_CREATE1
* Explicitly enable epoll on manylinux1Gravatar Mehrdad Afshari2018-01-17
| | | | | | | | | | | | For some reason, the glibc version check does not enable GRPC_LINUX_EPOLL on manylinux1. This commit: * Explicitly enables GRPC_LINUX_LEGACY_EPOLL on MANYLINUX1 * Switches the flag to enable epoll1 IO manager to GRPC_LINUX_LEGACY_EPOLL instead of GRPC_LINUX_EPOLL. This is to ensure epollex and epollsig that are not yet compatible with epoll_create (not epoll_create1) do not get activated unintentionally.
* Enable epoll on Python manylinux1Gravatar Mehrdad Afshari2018-01-16
| | | | | | | | | | | | | | The Python packages built for Linux and uploaded to PyPI are required to target a standardized platform specification dubbed `manylinux1`, which tries to cover a vast array of Linux distributions, thereby emulating a legacy lowest-common-denominator distribution, with an old `glibc` that does not support `epoll_create1`, but provides the `epoll_create` interface. While there are race condition risks associated with utilizing the latter interface and setting the `O_CLOEXEC` flag immediately on the file descriptor returned by `epoll_create`, the payoff is well worth the risks for our Python users, who currently end up falling back on `poll` polling engine when downloading our Linux binary packages.
* Merge branch v1.8.x into masterGravatar Mehrdad Afshari2017-12-31
|\ | | | | | | Upmerge v1.8.3 into master
| * Relax log-level when polling engines are undefinedGravatar Mehrdad Afshari2017-12-29
| |
* | minor typo : becuase -> becauseGravatar ita9naiwa2017-12-19
| |
* | Merge branch 'master' into cv-wait-monotonicGravatar Sree Kuchibhotla2017-12-08
|\ \
| * | Revert "Revert "All instances of exec_ctx being passed around in src/core ↵Gravatar Yash Tibrewal2017-12-06
| | | | | | | | | | | | removed""
| * | Revert "All instances of exec_ctx being passed around in src/core removed"Gravatar Yash Tibrewal2017-12-06
| | |
* | | Change the code to use MONOTONIC clocks when calling gpr_cv_wait (condition ↵Gravatar Sree Kuchibhotla2017-12-04
| |/ |/| | | | | varialbes in linux support MONOTONIC clock type)
| * Merge masterGravatar Yash Tibrewal2017-11-21
| |\ | |/ |/|
* | Merge pull request #13454 from yang-g/lockfree_eventGravatar Yang Gao2017-11-20
|\ \ | | | | | | Avoid calling dtor on grpc_fd before putting it in freelist
| * | Resolve commentsGravatar yang-g2017-11-20
| | |
| * | Avoid calling dtor on grpc_fd before putting it in freelistGravatar yang-g2017-11-17
| | |
| | * Merge masterGravatar Yash Tibrewal2017-11-16
| | |\ | | |/ | |/|
| | * Move ExecCtx to grpc_core namespace. Make exec_ctx a private static in ↵Gravatar Yash Tibrewal2017-11-14
| | | | | | | | | | | | ExecCtx and some minor changes
| | * Address some PR commentsGravatar Yash Tibrewal2017-11-14
| | |
* | | Merge branch 'master' of https://github.com/grpc/grpc into tracing++Gravatar Noah Eisen2017-11-13
|\| |
* | | Get NDEBUG to buildGravatar ncteisen2017-11-10
| | |