diff --git a/gitstatus/bin/gitstatusd-darwin-x86_64 b/gitstatus/bin/gitstatusd-darwin-x86_64 index c0555111..e8af4d00 100755 Binary files a/gitstatus/bin/gitstatusd-darwin-x86_64 and b/gitstatus/bin/gitstatusd-darwin-x86_64 differ diff --git a/gitstatus/bin/gitstatusd-freebsd-amd64 b/gitstatus/bin/gitstatusd-freebsd-amd64 index 26152b36..440a6549 100755 Binary files a/gitstatus/bin/gitstatusd-freebsd-amd64 and b/gitstatus/bin/gitstatusd-freebsd-amd64 differ diff --git a/gitstatus/bin/gitstatusd-linux-armv7l b/gitstatus/bin/gitstatusd-linux-armv7l index 95187591..84659464 100755 Binary files a/gitstatus/bin/gitstatusd-linux-armv7l and b/gitstatus/bin/gitstatusd-linux-armv7l differ diff --git a/gitstatus/bin/gitstatusd-linux-x86_64 b/gitstatus/bin/gitstatusd-linux-x86_64 index 2b02cd76..c060296c 100755 Binary files a/gitstatus/bin/gitstatusd-linux-x86_64 and b/gitstatus/bin/gitstatusd-linux-x86_64 differ diff --git a/gitstatus/gitstatus.plugin.zsh b/gitstatus/gitstatus.plugin.zsh index 3f971139..b55aa1d6 100644 --- a/gitstatus/gitstatus.plugin.zsh +++ b/gitstatus/gitstatus.plugin.zsh @@ -189,13 +189,10 @@ function gitstatus_start() { [[ ! -v GITSTATUS_DAEMON_PID_${name} ]] || return 0 - function gitstatus_arch() { - local kernel && kernel=$(uname -s) && [[ -n $kernel ]] - local arch && arch=$(uname -m) && [[ -n $arch ]] - echo -E "${kernel:l}-${arch:l}" - } + local os && os=$(uname -s) && [[ -n $os ]] + local arch && arch=$(uname -m) && [[ -n $arch ]] - local daemon && daemon=${GITSTATUS_DAEMON:-${${(%):-%x}:A:h}/bin/gitstatusd-$(gitstatus_arch)} + local daemon && daemon=${GITSTATUS_DAEMON:-${${(%):-%x}:A:h}/bin/gitstatusd-${os:l}-${arch:l}} [[ -f $daemon ]] || { echo "file not found: $daemon" >&2 && return 1 } local req_fifo resp_fifo log @@ -217,9 +214,17 @@ function gitstatus_start() { log=$(mktemp "${TMPDIR:-/tmp}"/gitstatus.$$.log.XXXXXXXXXX) || log=/dev/null + local -i threads=${GITSTATUS_NUM_THREADS:-0} + (( threads > 0)) || { + case $os in + FreeBSD) threads=$(sysctl -n hw.ncpu);; + *) threads=$(getconf _NPROCESSORS_ONLN);; + esac + } + # We use `zsh -c` instead of plain {} or () to work around bugs in zplug. It hangs on startup. zsh -c " - ${(q)daemon} --dirty-max-index-size=${(q)max_dirty} --parent-pid=$$ + ${(q)daemon} --parent-pid=$$ --dirty-max-index-size=${(q)max_dirty} --num-threads=$threads echo -nE $'bye\x1f0\x1e' rm -f ${(q)req_fifo} ${(q)resp_fifo} " <&$req_fd >&$resp_fd 2>$log &!