commit 1d010afbf72355eae0fdffa249f2588cb801c302
parent 4ce1ab8a2632c1676235b51b00f4469e96966c7c
Author: Mikkel Oscar Lyderik <mikkeloscar@gmail.com>
Date: Tue, 22 Mar 2016 11:27:36 +0100
Abort when receiving 0 bytes in IPC call
When sway crashes a swaybar process is sometimes left behind running at
100% CPU. This was caused by the swaybar trying to retrieve an IPC
response from the closed sway socket.
This patch fixes the problem by aborting when the socket has been closed
(recv return 0).
Fix #528
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/ipc-client.c b/common/ipc-client.c
@@ -47,7 +47,7 @@ struct ipc_response *ipc_recv_response(int socketfd) {
size_t total = 0;
while (total < ipc_header_size) {
ssize_t received = recv(socketfd, data + total, ipc_header_size - total, 0);
- if (received < 0) {
+ if (received <= 0) {
sway_abort("Unable to receive IPC response");
}
total += received;