Commit Graph

42 Commits

Author SHA1 Message Date
Roman Perepelitsa
d6f8c47761 survive broken $TMPDIR 2022-01-26 15:03:22 +01:00
Roman Perepelitsa
f82d0de0d3 remove spurious error messages from _p9k_worker_stop 2020-06-03 09:22:15 +02:00
romkatv
b3875f5193 avoid spurious error (even if harmless and invisible) on worker cleanup 2020-05-26 20:15:53 +02:00
romkatv
519de2c569 Revert "close instant prompt descriptors in worker"
This reverts commit 646a826440.
2020-05-20 07:06:38 +02:00
romkatv
646a826440 close instant prompt descriptors in worker 2020-05-19 20:20:21 +02:00
romkatv
3688d12857 cd => cd -q to survive weird chpwd hooks 2020-05-04 17:58:57 +02:00
romkatv
2cc815deaf 'cd /' in the worker to avoid locking cwd 2020-05-04 13:24:22 +02:00
romkatv
06603a2d62 work around bugs in kitty where it hangs on close
All terminals quit when the child process terminates. Except
kitty. Kitty doesn't quit until there are no open file
descriptors to the tty.

And the best thing? This is "better". Having the balls to
claim this nasty bug as feature is worthy of admiration.
2020-05-02 16:30:47 +02:00
romkatv
d70cc3a24b backport changes to 5.1: procsubstpid doesn't exist there 2020-02-22 18:39:42 +01:00
romkatv
491e630bcb don't send worker pid -- master can get it on its own 2020-02-22 18:27:45 +01:00
romkatv
0a28653355 optimize worker i/o 2020-02-22 18:19:28 +01:00
romkatv
69fce3e1fc speed up worker chatter 2020-02-14 17:59:53 +01:00
romkatv
9fcc380cac make fewer sysread calls 2020-02-10 15:08:50 +01:00
romkatv
f01c200e98 rename many _p9k_ vars to _p9k__; trigger state dump when timewarrior and asdf caches change 2020-02-10 12:59:37 +01:00
romkatv
7354eeaa96 workaround for a bug in sysread
There is a bug in sysread from zsh/system. It triggers in the
following case:

1. zsh has been compiled with HAVE_SELECT and without HAVE_POLL.
2. sysread is called with timeout (-t).
3. the input file descriptor is valid but there is no data to read.
4. errno happens to be EINTR prior to the call to sysread.

This results in an infinite loop in sysread:

  while ((ret = select(infd+1, (SELECT_ARG_2_T) &fds,
                       NULL, NULL,&select_tv)) < 1) {
    if (errno != EINTR || errflag || retflag || breaks || contflag)
      break;
  }

Here select() keeps returning 0, indicating timeout. This is not an
error, so errno doesn't get set. If it was EINTR prior to the call,
it stays EINTR, and the loop keeps spinning.

As a workaround, powerlevel10k sets errno to ENOTTY (any value other
than EINTR will do) prior to calling sysread with timeout.
2020-02-05 14:37:43 +01:00
romkatv
fab13389f1 remove profiling instrumentation 2020-02-03 16:16:45 +01:00
romkatv
4b62cd7380 bug fix: make reset=2 sticky 2020-02-03 11:47:39 +01:00
romkatv
eb9da89ad9 quote $foo when running with unknown options; fixes #453 2020-02-01 22:03:42 +01:00
romkatv
a9715367d4 fix prompt_char (never showed error); unify options 2020-01-26 16:54:52 +01:00
romkatv
8d2ab89627 remove debugging junk 2020-01-26 15:24:13 +01:00
romkatv
57dc301d6e bug fix: declare worker global vars in _p9k_init_vars 2020-01-26 11:46:35 +01:00
romkatv
f1bb5601fe process ready replies from worker synchornously in precmd 2020-01-25 12:51:46 +01:00
romkatv
e97a6c6701 delete fifo before killing worker from watchdog 2020-01-25 12:18:15 +01:00
romkatv
2dc56d0afe trap PIPE 2020-01-25 11:12:30 +01:00
romkatv
565492b10e migrate over from the old worker api; use worker in battery on macOS 2020-01-25 11:01:14 +01:00
romkatv
148ecf7fc3 use ascii ENQ (0x05) for watchdog pings 2020-01-25 08:03:28 +01:00
romkatv
45d14cbcf5 add watchdog to worker 2020-01-25 07:52:12 +01:00
romkatv
2aa1d07b4a massive worker simplification (figure out during massive hangover) 2020-01-24 19:47:01 +01:00
romkatv
0f6b7953be synthesize common prompt functions 2020-01-20 23:37:03 +01:00
romkatv
e01b5d9529 refactor worker code 2020-01-20 20:12:05 +01:00
romkatv
c79108ff0a work around wsl bugs 2020-01-19 21:16:26 +01:00
romkatv
430c2b0178 explicit exec in worker 2020-01-19 19:28:42 +01:00
romkatv
635ffb0e21 load the same modules and functions in worker as in master 2020-01-19 13:56:45 +01:00
romkatv
61df3d1cfb even further simplify worker bootstrap 2020-01-19 13:49:54 +01:00
romkatv
23e8921b8d further simplify worker bootstrap 2020-01-19 13:14:58 +01:00
romkatv
1208fd10ef simplify worker bootstrap 2020-01-19 11:53:10 +01:00
romkatv
0d33157b12 migrate disk_usage and public_ip to worker 2020-01-18 15:41:43 +01:00
romkatv
a6e0b01dc1 remove explicit timeout support from worker 2020-01-18 12:08:48 +01:00
romkatv
da498aef57 support parallelism in worker 2020-01-18 11:09:18 +01:00
romkatv
145b1a1103 cleanup 2020-01-17 19:17:23 +01:00
romkatv
e0e6a4bf49 cleanup 2020-01-17 19:14:28 +01:00
romkatv
aa0f435d75 add worker.zsh 2020-01-17 19:01:17 +01:00