| 359 | # |
| 360 | |
| 361 | class _ParentProcess(BaseProcess): |
| 362 | |
| 363 | def __init__(self, name, pid, sentinel): |
| 364 | self._identity = () |
| 365 | self._name = name |
| 366 | self._pid = pid |
| 367 | self._parent_pid = None |
| 368 | self._popen = None |
| 369 | self._closed = False |
| 370 | self._sentinel = sentinel |
| 371 | self._config = {} |
| 372 | |
| 373 | def is_alive(self): |
| 374 | from multiprocessing.connection import wait |
| 375 | return not wait([self._sentinel], timeout=0) |
| 376 | |
| 377 | @property |
| 378 | def ident(self): |
| 379 | return self._pid |
| 380 | |
| 381 | def join(self, timeout=None): |
| 382 | ''' |
| 383 | Wait until parent process terminates |
| 384 | ''' |
| 385 | from multiprocessing.connection import wait |
| 386 | wait([self._sentinel], timeout=timeout) |
| 387 | |
| 388 | pid = ident |
| 389 | |
| 390 | # |
| 391 | # Create object representing the main process |