404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.22.242.43: ~ $
import io
import os

from .context import reduction, set_spawning_popen
if not reduction.HAVE_SEND_HANDLE:
    raise ImportError('No support for sending fds between processes')
from . import forkserver
from . import popen_fork
from . import spawn
from . import util


__all__ = ['Popen']

#
# Wrapper for an fd used while launching a process
#

class _DupFd(object):
    def __init__(self, ind):
        self.ind = ind
    def detach(self):
        return forkserver.get_inherited_fds()[self.ind]

#
# Start child process using a server process
#

class Popen(popen_fork.Popen):
    method = 'forkserver'
    DupFd = _DupFd

    def __init__(self, process_obj):
        self._fds = []
        super().__init__(process_obj)

    def duplicate_for_child(self, fd):
        self._fds.append(fd)
        return len(self._fds) - 1

    def _launch(self, process_obj):
        prep_data = spawn.get_preparation_data(process_obj._name)
        buf = io.BytesIO()
        set_spawning_popen(self)
        try:
            reduction.dump(prep_data, buf)
            reduction.dump(process_obj, buf)
        finally:
            set_spawning_popen(None)

        self.sentinel, w = forkserver.connect_to_new_process(self._fds)
        util.Finalize(self, os.close, (self.sentinel,))
        with open(w, 'wb', closefd=True) as f:
            f.write(buf.getbuffer())
        self.pid = forkserver.read_unsigned(self.sentinel)

    def poll(self, flag=os.WNOHANG):
        if self.returncode is None:
            from multiprocessing.connection import wait
            timeout = 0 if flag == os.WNOHANG else None
            if not wait([self.sentinel], timeout):
                return None
            try:
                self.returncode = forkserver.read_unsigned(self.sentinel)
            except (OSError, EOFError):
                # The process ended abnormally perhaps because of a signal
                self.returncode = 255
        return self.returncode

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