[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.138.105.164: ~ $
import os
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.finalizer = None
        self._launch(process_obj)

    def duplicate_for_child(self, fd):
        return fd

    def poll(self, flag=os.WNOHANG):
        if self.returncode is None:
            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
            if pid == self.pid:
                if os.WIFSIGNALED(sts):
                    self.returncode = -os.WTERMSIG(sts)
                else:
                    assert os.WIFEXITED(sts), "Status is {:n}".format(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 _send_signal(self, sig):
        if self.returncode is None:
            try:
                os.kill(self.pid, sig)
            except ProcessLookupError:
                pass
            except OSError:
                if self.wait(timeout=0.1) is None:
                    raise

    def terminate(self):
        self._send_signal(signal.SIGTERM)

    def kill(self):
        self._send_signal(signal.SIGKILL)

    def _launch(self, process_obj):
        code = 1
        parent_r, child_w = os.pipe()
        child_r, parent_w = os.pipe()
        self.pid = os.fork()
        if self.pid == 0:
            try:
                os.close(parent_r)
                os.close(parent_w)
                code = process_obj._bootstrap(parent_sentinel=child_r)
            finally:
                os._exit(code)
        else:
            os.close(child_w)
            os.close(child_r)
            self.finalizer = util.Finalize(self, util.close_fds,
                                           (parent_r, parent_w,))
            self.sentinel = parent_r

    def close(self):
        if self.finalizer is not None:
            self.finalizer()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
dummy Folder 0755
__init__.py File 916 B 0644
connection.py File 30.94 KB 0644
context.py File 10.99 KB 0644
forkserver.py File 12.24 KB 0644
heap.py File 11.35 KB 0644
managers.py File 47.77 KB 0644
pool.py File 31.75 KB 0644
popen_fork.py File 2.51 KB 0644
popen_forkserver.py File 2.18 KB 0644
popen_spawn_posix.py File 1.98 KB 0644
popen_spawn_win32.py File 3.92 KB 0644
process.py File 11.72 KB 0644
queues.py File 11.42 KB 0644
reduction.py File 9.29 KB 0644
resource_sharer.py File 5.23 KB 0644
resource_tracker.py File 8.41 KB 0644
shared_memory.py File 17.01 KB 0644
sharedctypes.py File 6.16 KB 0644
spawn.py File 9.08 KB 0644
synchronize.py File 11.34 KB 0644
util.py File 13.62 KB 0644