diff --git a/internal/worker.zsh b/internal/worker.zsh index 4b3f40e4..8eb21af3 100644 --- a/internal/worker.zsh +++ b/internal/worker.zsh @@ -89,13 +89,15 @@ function _p9k_worker_invoke() { } function _p9k_worker_cleanup() { - # langinfo may not be available here. - eval "$__p9k_intro_no_locale" + # __p9k_intro bugs out here in some cases for some reason. + emulate -L zsh [[ $_p9k__worker_shell_pid == $sysparams[pid] ]] && _p9k_worker_stop return 0 } function _p9k_worker_stop() { + # See comments in _p9k_worker_cleanup. + emulate -L zsh add-zsh-hook -D zshexit _p9k_worker_cleanup [[ -n $_p9k__worker_resp_fd ]] && zle -F $_p9k__worker_resp_fd [[ -n $_p9k__worker_resp_fd ]] && exec {_p9k__worker_resp_fd}>&-