@@ -379,6 +379,7 @@ _agkozak_has_usr1() {
379379# when necessary).
380380#
381381# Globals:
382+ # AGKOZAK_IS_WSL
382383# AGKOZAK_ASYNC_METHOD
383384# AGKOZAK_FORCE_ASYNC_METHOD
384385# AGKOZAK_TRAPUSR1_FUNCTION
@@ -390,7 +391,7 @@ _agkozak_async_init() {
390391 if [[ -e /proc/version ]]; then
391392 if [[ -n ${(M)${(f)" $( < /proc/version) " } :#* Microsoft* } ]]; then
392393 unsetopt BG_NICE
393- local WSL =1 # For later reference
394+ typeset -g AGKOZAK_IS_WSL =1 # For later reference
394395 fi
395396 fi
396397
@@ -402,7 +403,7 @@ _agkozak_async_init() {
402403 # Otherwise, first provide for certain quirky systems
403404 else
404405
405- if (( WSL )) || [[ $OSTYPE == solaris* ]]; then
406+ if (( AGKOZAK_IS_WSL )) || [[ $OSTYPE == solaris* ]]; then
406407 if [[ $ZSH_VERSION != ' 5.0.2' ]] && _agkozak_load_async_lib; then
407408 typeset -g AGKOZAK_ASYNC_METHOD=' zsh-async'
408409 elif _agkozak_has_usr1; then
@@ -411,8 +412,8 @@ _agkozak_async_init() {
411412 typeset -g AGKOZAK_ASYNC_METHOD=' subst-async'
412413 fi
413414
414- # SIGUSR1 method is still much faster on MSYS2 and Cygwin
415- elif [[ $OSTYPE == (msys| cygwin) ]]; then
415+ # SIGUSR1 method is still much faster on MSYS2, Cygwin, and ZSH v5.0.2
416+ elif [[ $ZSH_VERSION == ' 5.0.2 ' ]] || [[ $ OSTYPE == (msys| cygwin) ]]; then
416417 if _agkozak_has_usr1; then
417418 typeset -g AGKOZAK_ASYNC_METHOD=' usr1'
418419 else
@@ -439,6 +440,7 @@ _agkozak_async_init() {
439440 #
440441 # Globals:
441442 # AGKOZAK_ASYNC_FD
443+ # AGKOZAK_IS_WSL
442444 # ###########################################################
443445 _agkozak_subst_async () {
444446 setopt LOCAL_OPTIONS NO_IGNORE_BRACES
@@ -447,8 +449,9 @@ _agkozak_async_init() {
447449 # Workaround for buggy behavior in MSYS2, Cygwin, and Solaris
448450 if [[ $OSTYPE == (msys| cygwin| solaris* ) ]]; then
449451 exec {AGKOZAK_ASYNC_FD}< <( _agkozak_branch_status; command true)
450- # Prevent WSL from locking up when using X
451- elif (( WSL )) && (( $+ DISPLAY )) ; then
452+ # Prevent WSL from locking up when using X; also workaround for ZSH v5.0.2
453+ elif (( AGKOZAK_IS_WSL )) && (( $+ DISPLAY )) \
454+ || [[ $ZSH_VERSION == ' 5.0.2' ]]; then
452455 exec {AGKOZAK_ASYNC_FD}< <( _agkozak_branch_status)
453456 command sleep 0.01
454457 else
0 commit comments