forked from goodboy/tractor
				
			Don't kill root's immediate children when in debug
If the root calls `trio.Process.kill()` on immediate child proc teardown when the child is using pdb, we can get stdstreams clobbering that results in a pdb++ repl where the user can't see what's been typed. Not killing such children on cancellation / error seems to resolve this issue whilst still giving reliable termination. For now, code that special path until a time it becomes a problem for ensuring zombie reaps.infect_asyncio_backup
							parent
							
								
									7cc25fc99f
								
							
						
					
					
						commit
						02fbe9721b
					
				| 
						 | 
					@ -366,6 +366,7 @@ async def new_proc(
 | 
				
			||||||
            bind_addr=bind_addr,
 | 
					            bind_addr=bind_addr,
 | 
				
			||||||
            parent_addr=parent_addr,
 | 
					            parent_addr=parent_addr,
 | 
				
			||||||
            _runtime_vars=_runtime_vars,
 | 
					            _runtime_vars=_runtime_vars,
 | 
				
			||||||
 | 
					            infect_asyncio=infect_asyncio,
 | 
				
			||||||
            task_status=task_status,
 | 
					            task_status=task_status,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -381,6 +382,7 @@ async def mp_new_proc(
 | 
				
			||||||
    parent_addr: Tuple[str, int],
 | 
					    parent_addr: Tuple[str, int],
 | 
				
			||||||
    _runtime_vars: Dict[str, Any],  # serialized and sent to _child
 | 
					    _runtime_vars: Dict[str, Any],  # serialized and sent to _child
 | 
				
			||||||
    *,
 | 
					    *,
 | 
				
			||||||
 | 
					    infect_asyncio: bool = False,
 | 
				
			||||||
    task_status: TaskStatus[Portal] = trio.TASK_STATUS_IGNORED
 | 
					    task_status: TaskStatus[Portal] = trio.TASK_STATUS_IGNORED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
) -> None:
 | 
					) -> None:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue