persist cache more aggressively
This commit is contained in:
parent
e02d3f1156
commit
7f3637ee0d
|
@ -260,6 +260,7 @@ _p9k_cache_set() {
|
||||||
# echo "caching: ${(@0q)_p9k_cache_key} => (${(q)@})" >&2
|
# echo "caching: ${(@0q)_p9k_cache_key} => (${(q)@})" >&2
|
||||||
_p9k_cache[$_p9k_cache_key]="${(pj:\0:)*}0"
|
_p9k_cache[$_p9k_cache_key]="${(pj:\0:)*}0"
|
||||||
_p9k_cache_val=("$@")
|
_p9k_cache_val=("$@")
|
||||||
|
_p9k_dump_scheduled=1
|
||||||
}
|
}
|
||||||
|
|
||||||
_p9k_cache_get() {
|
_p9k_cache_get() {
|
||||||
|
@ -3399,7 +3400,7 @@ function _p9k_dump_state() {
|
||||||
sysopen -a -m 600 -o creat,trunc -u fd $tmp || return
|
sysopen -a -m 600 -o creat,trunc -u fd $tmp || return
|
||||||
{
|
{
|
||||||
local include='_POWERLEVEL9K_*|_p9k_*|icons|OS|DEFAULT_COLOR|DEFAULT_COLOR_INVERTED'
|
local include='_POWERLEVEL9K_*|_p9k_*|icons|OS|DEFAULT_COLOR|DEFAULT_COLOR_INVERTED'
|
||||||
local exclude='_p9k_gitstatus_*|_p9k_param_sig|_p9k_public_ip|_p9k_prompt|_p9k_prompt_idx|_p9k_async_pump_*'
|
local exclude='_p9k_gitstatus_*|_p9k_param_sig|_p9k_public_ip|_p9k_prompt|_p9k_prompt_idx|_p9k_dump_pid|_p9k_dump_scheduled|_p9k_async_pump_*'
|
||||||
typeset -g __p9k_cached_param_sig=$_p9k_param_sig
|
typeset -g __p9k_cached_param_sig=$_p9k_param_sig
|
||||||
typeset -p __p9k_cached_param_sig >&$fd || return
|
typeset -p __p9k_cached_param_sig >&$fd || return
|
||||||
unset __p9k_cached_param_sig
|
unset __p9k_cached_param_sig
|
||||||
|
@ -3498,8 +3499,16 @@ _p9k_precmd_impl() {
|
||||||
_p9k_set_prompt
|
_p9k_set_prompt
|
||||||
_p9k_refresh_reason=''
|
_p9k_refresh_reason=''
|
||||||
|
|
||||||
if ! zle && (( _p9k_prompt_idx == 1 && !_p9k_state_restored || _p9k_prompt_idx == 2 )); then
|
if ! zle && { (( ! _p9k_dump_pid )) || ! kill -0 $_p9k_dump_pid 2>/dev/null }; then
|
||||||
_p9k_dump_state
|
_p9k_dump_pid=0
|
||||||
|
if (( _p9k_prompt_idx == 1 && !_p9k_state_restored )); then
|
||||||
|
_p9k_dump_state
|
||||||
|
_p9k_dump_scheduled=0
|
||||||
|
elif (( _p9k_dump_scheduled )); then
|
||||||
|
_p9k_dump_state &!
|
||||||
|
_p9k_dump_pid=$!
|
||||||
|
_p9k_dump_scheduled=0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3710,6 +3719,8 @@ function _p9k_prompt_overflow_bug() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_p9k_init_vars() {
|
_p9k_init_vars() {
|
||||||
|
typeset -gi _p9k_dump_scheduled
|
||||||
|
typeset -gi _p9k_dump_pid
|
||||||
typeset -gi _p9k_prompt_idx
|
typeset -gi _p9k_prompt_idx
|
||||||
typeset -gi _p9k_state_restored
|
typeset -gi _p9k_state_restored
|
||||||
typeset -gi _p9k_reset_on_line_finish
|
typeset -gi _p9k_reset_on_line_finish
|
||||||
|
@ -4687,6 +4698,7 @@ _p9k_init() {
|
||||||
_p9k_deinit() {
|
_p9k_deinit() {
|
||||||
(( $+functions[gitstatus_stop] )) && gitstatus_stop POWERLEVEL9K
|
(( $+functions[gitstatus_stop] )) && gitstatus_stop POWERLEVEL9K
|
||||||
_p9k_deinit_async_pump
|
_p9k_deinit_async_pump
|
||||||
|
(( _p9k_dump_pid )) && wait $_p9k_dump_pid 2>/dev/null
|
||||||
unset -m '(_POWERLEVEL9K_|P9K_|_p9k_)*~P9K_SSH'
|
unset -m '(_POWERLEVEL9K_|P9K_|_p9k_)*~P9K_SSH'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue