| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This helps to ensure consistent results, regardless of whether we're
using Python 2 or Python 3.
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit 9e37cca4f54260bd8c45a3041fcee00938c71649.
As noted in bug #448858, comment #14, dlclose is not called
automatically, so we may as well cache our library handles.
In order to protect ourselves, we use a fork since commit
7ebb2f54877edb28621c33e380f8777b1b1dc201.
|
|
|
|
|
| |
Special thanks to Brian Harring, author of the mirror-dist program from
which emirrordist is derived.
|
| |
|
|
|
|
|
| |
This ensures that scheduling loops terminate as soon as possible after
an interrupt is received.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Avoid blocking for IO if there are any timeout or idle callback events
available to process. This will prevent starvation of the idle
callbacks, which are much more common since commit
a3100be184ba1cac2f672f0a1cadcf01690c6d3f. We don't want these idle
callbacks to be delayed by long periods of IO blocking.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to avoid blocking forever when may_block is True (the
default), callers must be careful to ensure that at least one of the
following conditions is met:
1) An event source or timeout is registered which is guaranteed
to trigger at least on event (a call to an idle function
only counts as an event if it returns a False value which
causes it to be stop being called)
2) Another thread is guaranteed to call one of the thread-safe
methods which notify iteration to stop waiting (such as
idle_add or timeout_add).
These rules ensure that iteration is able to block until an event
arrives, without doing any busy waiting that would waste CPU time.
This will fix busy waiting which would be triggered by
PopenPipeBlockingIOTestCase when waiting for the thread from
PipeReaderBlockingIO to call idle_add.
|
| |
|
|
|
|
|
|
| |
This may be useful for using threads to handle blocking IO with Jython,
since Jython lacks the fcntl module which is needed for non-blocking IO
(see http://bugs.jython.org/issue1074).
|
|
|
|
| |
Python >=3.3.
|
|
|
|
| |
Python >=3.3.
|
| |
|
|
|
|
| |
See bug #443100.
|
| |
|
| |
|
|
|
|
| |
Parent class AbstractPollTask has equivalent implementation.
|
|
|
|
|
|
| |
The copyright dates for these classes begin in 2008, since SpawnProcess
code is derived from the EbuildFetcherAsync class which was added in
commit e4edadf5ae7063f375d76be151c6d0e949980ecf in 2008.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Move the 30 second default to the Scheduler class, since that's the
only place that it's currently needed (all other schedulers have
relatively short-running jobs).
|
|
|
|
| |
This is the most reliable way to handle the race condition.
|
|
|
|
|
| |
This minimizes the probability of triggering irrelevant finally blocks
from earlier in the call stack (bug #345289).
|
|
|
|
|
|
| |
It isn't used externally anymore, since SchedulerInterface is used
directly in those places now. Many of the self.sched_iface references
updated here, it's more appropriate to use self._event_loop.
|
| |
|
|
|
|
|
|
| |
It's not allowed for AsyncScheduler to inherit from two classes that
define __slots__, so it useless to define __slots__ for AsyncScheduler
and subclasses.
|
|
|
|
| |
This allows the QueueScheduler class to be eliminated.
|
|
|
|
| |
Triggers cleanup and exit listeners if there's nothing left to do.
|
| |
|
|
|
|
|
| |
The _terminate_tasks method is always supposed to be called via
_termination_check.
|
| |
|
|
|
|
|
| |
Also add missing __slots__ to ForkProcess. TODO: Share code
between ForkProcess and MergeProcess.
|
|
|
|
|
|
|
|
|
|
| |
Update manifest files, and sign them if signing is enabled. This
supports parallelization if enabled via the --jobs option. The
--thin-manifests and --sign-manifests options may be used to manually
override layout.conf settings. There's also a new --strict-manifests
option that may be used to manually override the "strict" FEATURES
setting, a --gpg-key option to override PORTAGE_GPG_KEY, and a
--gpg-dir option to override PORTAGE_GPG_DIR.
|
|
|
|
|
| |
If /etc/portage/profile/eapi does not exist, then support extended atom
syntax. This will fix bug #436330.
|
|
|
|
|
|
| |
This fixes a case where EventLoop could consume 100% CPU while waiting
for a child process. It also fixes timeout calculations in python 2.x,
where it was using integer division instead of float.
|
| |
|
|
|
|
|
| |
Also see bug #435834 and commit
7fb9758506341ffc05585fbd18f2be58ef0e16c2.
|