diff --git a/src/plasma_client.c b/src/plasma_client.c index 6c4ee4f1d..1cae73607 100644 --- a/src/plasma_client.c +++ b/src/plasma_client.c @@ -164,8 +164,10 @@ int plasma_subscribe(plasma_store_conn *conn) { plasma_request req = {}; plasma_send_request(conn->conn, PLASMA_SUBSCRIBE, &req); /* Send the file descriptor that the Plasma store should use to push - * notifications about sealed objects to this client. */ - send_fd(conn->conn, fd[1], NULL, 0); + * notifications about sealed objects to this client. We include a one byte + * message because otherwise it seems to hang on Linux. */ + char dummy = '\0'; + send_fd(conn->conn, fd[1], &dummy, 1); /* Return the file descriptor that the client should use to read notifications * about sealed objects. */ return fd[0]; diff --git a/src/plasma_store.c b/src/plasma_store.c index 9419d9dd2..3bdc1364a 100644 --- a/src/plasma_store.c +++ b/src/plasma_store.c @@ -282,7 +282,8 @@ void send_notifications(event_loop *loop, /* Subscribe to notifications about sealed objects. */ void subscribe_to_updates(plasma_store_state *s, int conn) { LOG_DEBUG("subscribing to updates"); - int fd = recv_fd(conn, NULL, 0); + char dummy; + int fd = recv_fd(conn, &dummy, 1); CHECKM(HASH_CNT(handle, s->open_objects) == 0, "plasma_subscribe should be called before any objects are created."); CHECKM(HASH_CNT(handle, s->sealed_objects) == 0,