#!/usr/bin/env python """ """ import time import asyncio import multiprocessing async def touch_event(event:multiprocessing.Event) -> None: print(f"touch event: {event}") # this works print(f"touch event.is_set: {event.is_set()}") # this crashes def master_func(space:dict) -> None: print(f"master space: {space}") event = space["this_event"] print(f"master event: {event}") asyncio.run(touch_event(event)) if __name__ == "__main__": this_event = multiprocessing.Event() this_space = dict( this_event=this_event, ) context_spawn = multiprocessing.get_context("spawn") master_proc = context_spawn.Process( target=master_func, args=[this_space], daemon=True, name="master", ) master_proc.start() time.sleep(1) master_proc.terminate() master_proc.join()