diff options
| author | Taylor Blau <me@ttaylorr.com> | 2024-10-15 16:56:43 -0400 |
|---|---|---|
| committer | Taylor Blau <me@ttaylorr.com> | 2024-10-15 16:56:43 -0400 |
| commit | b43e23fa02427067ceb605a5dd5ea602de4c6ac5 (patch) | |
| tree | f3807a33e9cd06c829fdb1262a52eeb594f81920 /compat/fsmonitor/fsm-listen-darwin.c | |
| parent | Merge branch 'xx/remote-server-option-config' (diff) | |
| parent | fsmonitor: initialize fs event listener before accepting clients (diff) | |
| download | git-b43e23fa02427067ceb605a5dd5ea602de4c6ac5.tar.gz git-b43e23fa02427067ceb605a5dd5ea602de4c6ac5.zip | |
Merge branch 'jk/fsmonitor-event-listener-race-fix'
On macOS, fsmonitor can fall into a race condition that results in
a client waiting forever to be notified for an event that have
already happened. This problem has been corrected.
* jk/fsmonitor-event-listener-race-fix:
fsmonitor: initialize fs event listener before accepting clients
simple-ipc: split async server initialization and running
Diffstat (limited to 'compat/fsmonitor/fsm-listen-darwin.c')
| -rw-r--r-- | compat/fsmonitor/fsm-listen-darwin.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compat/fsmonitor/fsm-listen-darwin.c b/compat/fsmonitor/fsm-listen-darwin.c index 2fc67442eb..dfa551459d 100644 --- a/compat/fsmonitor/fsm-listen-darwin.c +++ b/compat/fsmonitor/fsm-listen-darwin.c @@ -516,6 +516,12 @@ void fsm_listen__loop(struct fsmonitor_daemon_state *state) } data->stream_started = 1; + /* + * Our fs event listener is now running, so it's safe to start + * serving client requests. + */ + ipc_server_start_async(state->ipc_server_data); + pthread_mutex_lock(&data->dq_lock); pthread_cond_wait(&data->dq_finished, &data->dq_lock); pthread_mutex_unlock(&data->dq_lock); |
