Complete move to prewarm.py

This commit is contained in:
Kovid Goyal 2022-06-07 19:52:38 +05:30
parent 2dd1201c3f
commit 6dc076f5d1
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -88,7 +88,7 @@ class PrewarmProcess:
env = dict(os.environ) env = dict(os.environ)
env['KITTY_PREWARM_CONFIG'] = self.prewarm_config env['KITTY_PREWARM_CONFIG'] = self.prewarm_config
self.process = subprocess.Popen( self.process = subprocess.Popen(
[kitty_exe(), '+kitten', 'prewarm', str(self.in_worker_fd)], [kitty_exe(), '+runpy', f'from kitty.prewarm import main; main({self.in_worker_fd})'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, pass_fds=(self.in_worker_fd,), env=env) stdin=subprocess.PIPE, stdout=subprocess.PIPE, pass_fds=(self.in_worker_fd,), env=env)
os.close(self.in_worker_fd) os.close(self.in_worker_fd)
self.in_worker_fd = -1 self.in_worker_fd = -1
@ -307,9 +307,8 @@ def fork(shm_address: str, ready_fd: int) -> int:
sys.stdin = sys.__stdin__ sys.stdin = sys.__stdin__
def main(args: List[str] = sys.argv) -> None: def main(notify_child_death_fd: int) -> None:
read_signal_fd, write_signal_fd = safe_pipe() read_signal_fd, write_signal_fd = safe_pipe()
notify_child_death_fd = int(sys.argv[-1])
os.set_blocking(notify_child_death_fd, False) os.set_blocking(notify_child_death_fd, False)
signal.set_wakeup_fd(write_signal_fd) signal.set_wakeup_fd(write_signal_fd)
signal.signal(signal.SIGCHLD, lambda *a: None) signal.signal(signal.SIGCHLD, lambda *a: None)
@ -458,7 +457,3 @@ def main(args: List[str] = sys.argv) -> None:
for fmd in child_ready_fds.values(): for fmd in child_ready_fds.values():
with suppress(OSError): with suppress(OSError):
os.close(fmd) os.close(fmd)
if __name__ == '__main__':
main()