]> git.ipfire.org Git - thirdparty/git.git/commit - contrib/buildsystems/CMakeLists.txt
simple-ipc: add Unix domain socket implementation
authorJeff Hostetler <jeffhost@microsoft.com>
Mon, 22 Mar 2021 10:29:47 +0000 (10:29 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Mar 2021 18:52:54 +0000 (11:52 -0700)
commit7cd5dbcaba44914c07a51377e75c4e8bbe31f319
treefcfcd332b445434970a85c0f6135e7a555e7d8c1
parent9fd19027621fc4f8beb2e57ba37d91465d1906f6
simple-ipc: add Unix domain socket implementation

Create Unix domain socket based implementation of "simple-ipc".

A set of `ipc_client` routines implement a client library to connect
to an `ipc_server` over a Unix domain socket, send a simple request,
and receive a single response.  Clients use blocking IO on the socket.

A set of `ipc_server` routines implement a thread pool to listen for
and concurrently service client connections.

The server creates a new Unix domain socket at a known location.  If a
socket already exists with that name, the server tries to determine if
another server is already listening on the socket or if the socket is
dead.  If socket is busy, the server exits with an error rather than
stealing the socket.  If the socket is dead, the server creates a new
one and starts up.

If while running, the server detects that its socket has been stolen
by another server, it automatically exits.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
compat/simple-ipc/ipc-unix-socket.c [new file with mode: 0644]
contrib/buildsystems/CMakeLists.txt
simple-ipc.h