aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi
Commit message (Collapse)AuthorAge
* Check poll strategy in core fork handler and log error if unsupportedGravatar Eric Gribkoff2018-08-23
|
* Support tracking and closing fds post-fork in ev_poll_posixGravatar Eric Gribkoff2018-08-23
| | | | | | | This extends gRPC Python's fork compatibility to Mac OS, which does not support epoll The changes are a no-op if fork support is disabled
* Python post-fork handler: exit if grpc shutdown failsGravatar Eric Gribkoff2018-08-22
|
* 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.