_emerge.EbuildProcess module¶
- class _emerge.EbuildProcess.EbuildProcess(**kwargs)¶
Bases:
_emerge.AbstractEbuildProcess.AbstractEbuildProcess
- _CGROUP_CLEANUP_RETRY_MAX = 8¶
- _async_unlock_builddir(returncode=None)¶
Release the lock asynchronously, and if a returncode parameter is given then set self.returncode and notify exit listeners.
- _async_wait()¶
Override _async_wait to asynchronously unlock self._build_dir when necessary.
- _async_waitpid()¶
Wait for exit status of self.pid asynchronously, and then set the returncode, and finally notify exit listeners via the _async_wait method. Subclasses may override this method in order to implement an alternative means to retrieve pid exit status, or as a means to delay action until some pending task(s) have completed (such as reading data that the subprocess is supposed to have written to a pipe).
- _async_waitpid_cb(*args, **kwargs)¶
Override _async_waitpid_cb to perform cleanup that is not necessarily idempotent.
- _bufsize = 4096¶
- _build_dir¶
- _build_dir_unlock¶
- _can_log(slave_fd)¶
- _cancel()¶
Subclasses should implement this, as a template method to be called by AsynchronousTask.cancel().
- _cancel_timeout = 1¶
- _cancel_timeout_cb()¶
- _cancelled_returncode = -2¶
- _cgroup_cleanup()¶
- _dummy_pipe_fd¶
- _eerror(lines)¶
- _elog(elog_funcname, lines)¶
- _enable_ipc_daemon = True¶
- _exit_command¶
- _exit_command_callback()¶
- _exit_command_timeout_cb()¶
- _exit_listener_cb(listener)¶
- _exit_listener_handles¶
- _exit_listeners¶
- _exit_timeout = 10¶
- _exit_timeout_id¶
- _files¶
- _init_ipc_fifos()¶
- _ipc_daemon¶
- _killed_by_signal(signum)¶
- async _main(build_logger, pipe_logger, loop=None)¶
- _main_cancel(build_logger, pipe_logger)¶
- _main_exit(main_task)¶
- _main_task¶
- _main_task_cancel¶
- _orphan_process_warn()¶
- _phases_interactive_whitelist = ('config',)¶
- _phases_without_builddir = ('clean', 'cleanrm', 'depend', 'help')¶
- _pipe(fd_pipes)¶
- Parameters
fd_pipes (dict) – pipes from which to copy terminal size if desired.
- _poll()¶
- _read_array(f)¶
NOTE: array.fromfile() is used here only for testing purposes, because it has bugs in all known versions of Python (including Python 2.7 and Python 3.2). See PipeReaderArrayTestCase.
A benchmark that copies bytes from /dev/zero to /dev/null shows that arrays give a 15% performance improvement for Python 2.7.14. However, arrays significantly decrease performance for Python 3.
- _read_buf(fd)¶
Read self._bufsize into a string of bytes, handling EAGAIN and EIO. This will only call os.read() once, so the caller should call this method in a loop until either None or an empty string of bytes is returned. An empty string of bytes indicates EOF. None indicates EAGAIN.
- NOTE: os.read() will be called regardless of the event flags,
since otherwise data may be lost (see bug #531724).
- Parameters
fd (int) – file descriptor (non-blocking mode required)
- Return type
bytes or None
- Returns
A string of bytes, or None
- _registered¶
- _selinux_type¶
- _spawn(args, **kwargs)¶
- _spawn_kwarg_names = ('env', 'opt_name', 'fd_pipes', 'uid', 'gid', 'groups', 'umask', 'logfile', 'path_lookup', 'pre_exec', 'close_fds', 'cgroup', 'unshare_ipc', 'unshare_mount', 'unshare_pid', 'unshare_net')¶
- _start()¶
- _start_future¶
- _start_hook()¶
- _start_ipc_daemon()¶
- _start_listeners¶
- _start_post_builddir_lock(lock_future=None, start_ipc_daemon=False)¶
- _unexpected_exit()¶
- _unlock_builddir_exit(unlock_future, returncode=None)¶
- _unregister()¶
Unregister from the scheduler and close open files.
- _wait_hook()¶
Call this method after the task completes, just before returning the returncode from wait() or poll(). This hook is used to trigger exit listeners when the returncode first becomes available.
- _wait_loop(timeout=None)¶
- _waitpid_id¶
- _was_cancelled()¶
If cancelled, set returncode if necessary and return True. Otherwise, return False.
- actionmap¶
- addExitListener(f)¶
The function will be called with one argument, a reference to self.
- addStartListener(f)¶
The function will be called with one argument, a reference to self.
- args¶
- async_wait()¶
Wait for returncode asynchronously. Notification is available via the add_done_callback method of the returned Future instance.
- Returns
Future, result is self.returncode
- background¶
- cancel()¶
Cancel the task, but do not wait for exit status. If asynchronous exit notification is desired, then use addExitListener to add a listener before calling this method. NOTE: Synchronous waiting for status is not supported, since it would be vulnerable to hitting the recursion limit when a large number of tasks need to be terminated simultaneously, like in bug #402335.
- cancelled¶
- cgroup¶
- close_fds¶
- copy()¶
Create a new instance and copy all attributes defined from __slots__ (including those from inherited classes).
- env¶
- fd_pipes¶
- gid¶
- groups¶
- isAlive()¶
- log_filter_file¶
- logfile¶
- opt_name¶
- path_lookup¶
- phase¶
- pid¶
- poll()¶
- pre_exec¶
- removeExitListener(f)¶
- removeStartListener(f)¶
- returncode¶
- scheduler¶
- settings¶
- start()¶
Start an asynchronous task and then return as soon as possible.
- uid¶
- umask¶
- wait()¶
Wait for the returncode attribute to become ready, and return it. If the returncode is not ready and the event loop is already running, then the async_wait() method should be used instead of wait(), because wait() will raise asyncio.InvalidStateError in this case.
- Return type
int
- Returns
the value of self.returncode