diff --git a/internal/worker.zsh b/internal/worker.zsh index 269e8aad..5d7275b1 100644 --- a/internal/worker.zsh +++ b/internal/worker.zsh @@ -19,7 +19,9 @@ function _p9k_worker_main() { # usage: _p9k_worker_async function _p9k_worker_async() { local fd async=$1 - sysopen -r -o cloexec -u fd <(() { eval $async; } && print -n '\x1e') || return + (print -n '\x1e' &) + pid=$! + wait $pid || return 1 (( ++_p9k_worker_inflight[$_p9k_worker_request_id] )) _p9k_worker_fds[$fd]=$_p9k_worker_request_id$'\x1f'$2 }