32 Commits

Author SHA1 Message Date
Kovid Goyal
c7718d078c
Fix parsing of child pid and exit code 2022-08-01 19:02:57 +05:30
Kovid Goyal
d8f5ccf9e4
Make master tty raw and print error messages with more context 2022-08-01 19:02:57 +05:30
Kovid Goyal
39bb0ecfcf
more work on socket based prewarm 2022-08-01 19:02:57 +05:30
Kovid Goyal
b222ab1bf6
Start work on socket based prewarm 2022-08-01 19:02:57 +05:30
Kovid Goyal
79dec269e1
... 2022-07-16 10:25:18 +05:30
Kovid Goyal
a94a0f3026
Fix fd leak in prewarm zygote 2022-07-03 13:32:09 +05:30
Kovid Goyal
a3d42a90f2
Get rid of os.waitid() since its not present on macOS we cannot rely on it anyway 2022-06-19 18:11:23 +05:30
Kovid Goyal
a27dfd8b7c
Increase the timeout for prewarm I/O on CI 2022-06-14 21:17:28 +05:30
Kovid Goyal
f5976d0d63
Remove unneeded code 2022-06-13 21:33:07 +05:30
Kovid Goyal
b313fc3fbe
Forgot to also add SIGUSR1 handler 2022-06-13 21:09:32 +05:30
Kovid Goyal
cf667b8c47
Use a signal handler instead of a pipe for child death notification 2022-06-13 20:40:04 +05:30
Kovid Goyal
d5df301317
Finer grained polling 2022-06-13 19:41:40 +05:30
Kovid Goyal
8fb24fbc1e
poll() takes times in ms not seconds 2022-06-13 18:51:35 +05:30
Kovid Goyal
f0d4952055
Use an iterator 2022-06-13 08:14:51 +05:30
Kovid Goyal
7113580db2
macOS has no waitid
Le Sigh
2022-06-13 02:19:51 +05:30
Kovid Goyal
163c211219
Use waitid() rather than waitpid() to get full exit status 2022-06-13 00:19:56 +05:30
Kovid Goyal
6993157b3a
... 2022-06-13 00:15:07 +05:30
Kovid Goyal
e2efdf674d
Reap prewarmed processes 2022-06-13 00:11:16 +05:30
Kovid Goyal
9fcb8e5b6e
Close unneeded fds in forked children 2022-06-12 20:26:20 +05:30
Kovid Goyal
a1a637c7f1
Restore SIGUSR1 handling in prewarmed child 2022-06-12 18:59:55 +05:30
Kovid Goyal
4f87f3e9f4
... 2022-06-12 18:15:23 +05:30
Kovid Goyal
da6faa656c
Use a fork() without exec() to create prewarm process
This has the advantages:

1) Even first kitten use is fast
2) Computer has to do less work overall since prewarm process is itself prewarmed
2022-06-12 18:06:51 +05:30
Kovid Goyal
e338cdab31
Increase the timeout when talking to prewarm process 2022-06-09 07:01:42 +05:30
Kovid Goyal
7001d609fa
Fix spurious warning from runpy module when prewarmed 2022-06-09 07:01:42 +05:30
Kovid Goyal
c8399ce3d2
clear signal handlers in prewarm controller 2022-06-09 07:01:42 +05:30
Kovid Goyal
3e1d701dce
DRYer 2022-06-09 07:01:41 +05:30
Kovid Goyal
5d1cf339a7
Simplify child death tracking
Re-use the existing fd instead of catching signals
2022-06-09 07:01:41 +05:30
Kovid Goyal
6807f4d4ea
Report the correct cmdline for prewarmed processes 2022-06-09 07:01:41 +05:30
Kovid Goyal
116128ebb5
Get prewarm working
Needed to wait in the control process for child to set its controlling
terminal so that closing the slave fd in kitty is safe.
2022-06-09 07:01:41 +05:30
Kovid Goyal
0021b0c242
Prewarm all kittens 2022-06-09 07:01:41 +05:30
Kovid Goyal
6dc076f5d1
Complete move to prewarm.py 2022-06-09 06:54:05 +05:30
Kovid Goyal
2dd1201c3f
Dont use a kitten for prewarm 2022-06-09 06:53:51 +05:30