404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.147.54.52: ~ $
import os
import sys
import signal

from . import util

__all__ = ['Popen']

#
# Start child process using fork
#

class Popen(object):
    method = 'fork'

    def __init__(self, process_obj):
        util._flush_std_streams()
        self.returncode = None
        self._launch(process_obj)

    def duplicate_for_child(self, fd):
        return fd

    def poll(self, flag=os.WNOHANG):
        if self.returncode is None:
            while True:
                try:
                    pid, sts = os.waitpid(self.pid, flag)
                except OSError as e:
                    # Child process not yet created. See #1731717
                    # e.errno == errno.ECHILD == 10
                    return None
                else:
                    break
            if pid == self.pid:
                if os.WIFSIGNALED(sts):
                    self.returncode = -os.WTERMSIG(sts)
                else:
                    assert os.WIFEXITED(sts)
                    self.returncode = os.WEXITSTATUS(sts)
        return self.returncode

    def wait(self, timeout=None):
        if self.returncode is None:
            if timeout is not None:
                from multiprocessing.connection import wait
                if not wait([self.sentinel], timeout):
                    return None
            # This shouldn't block if wait() returned successfully.
            return self.poll(os.WNOHANG if timeout == 0.0 else 0)
        return self.returncode

    def terminate(self):
        if self.returncode is None:
            try:
                os.kill(self.pid, signal.SIGTERM)
            except ProcessLookupError:
                pass
            except OSError:
                if self.wait(timeout=0.1) is None:
                    raise

    def _launch(self, process_obj):
        code = 1
        parent_r, child_w = os.pipe()
        self.pid = os.fork()
        if self.pid == 0:
            try:
                os.close(parent_r)
                if 'random' in sys.modules:
                    import random
                    random.seed()
                code = process_obj._bootstrap()
            finally:
                os._exit(code)
        else:
            os.close(child_w)
            util.Finalize(self, os.close, (parent_r,))
            self.sentinel = parent_r

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
dummy Folder 0755
__init__.py File 923 B 0644
connection.py File 30.33 KB 0644
context.py File 10.66 KB 0644
forkserver.py File 8.49 KB 0644
heap.py File 8.12 KB 0644
managers.py File 37.26 KB 0644
pool.py File 25.45 KB 0644
popen_fork.py File 2.25 KB 0644
popen_forkserver.py File 1.91 KB 0644
popen_spawn_posix.py File 1.86 KB 0644
popen_spawn_win32.py File 2.93 KB 0644
process.py File 9 KB 0644
queues.py File 10.51 KB 0644
reduction.py File 9.01 KB 0644
resource_sharer.py File 5.2 KB 0644
semaphore_tracker.py File 5.27 KB 0644
sharedctypes.py File 6.1 KB 0644
spawn.py File 8.66 KB 0644
synchronize.py File 11.77 KB 0644
util.py File 11.61 KB 0644