| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This ensures that the code from commit
fe03b5fd790fc09bd6594c55bb174e80aaac1e5a behaves correctly even when
there are no poll events arriving for a long time (which might happen
if the running builds don't produce output for a long time).
|
|
|
|
|
| |
This will fix a case like that reported in bug #403895, triggered when
the --load-average option is used.
|
|
|
|
|
|
|
| |
For API consumers, this makes the doebuild() function compatible with
threads, avoiding a ValueError raised by the signal module, as reported
at http://bugs.sabayon.org/show_bug.cgi?id=3305. Classes derived from
PollScheduler still use the signal module when possible.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
This fixes a regression in termination signal handling since commit
8c1fcf5a9ba9fa4d406a4d0cc284fe73a84f5a63, which cause termination
signals to be ignored until a running job had exited. This regression
is not really noticeable for Ctrl-C handling, since in that case the
SIGINT propagets to subprocesses, causing them to exit and trigger a
_schedule() call whichtriggers a termination check.
|
|
|
|
| |
The _keep_scheduling() template method is used instead.
|
| |
|
| |
|
|
|
|
|
|
| |
This causes all PollScheduler instances within a given process to share
a singleton EventLoop instance, and also makes it possible to swap in
glib's main loop for all portage event loops in the main process.
|
| |
|
|
|
|
|
| |
We can use iteration() instead, and _poll_loop's exit behavior doesn't
seem practical to emulate with glib.MainLoop.
|
|
|
|
|
| |
PollScheduler and subclasses be should already be calling
self._schedule() when necessary.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Now PollScheduler will execute timeouts predictably, even when there
no IO events being generated. This allows the Scheduler's display
updates to be handled via timeout_add.
|
|
|
|
|
| |
This will be useful as a substitute for recursion, in order to avoid
hitting the recursion limit for bug #402335.
|
| |
|
| |
|
|
|
|
|
| |
This can be triggered by AbstractPollTask._log_poll_exception(), as
reported by Michael Haubenwallner <haubi@gentoo.org> for AIX.
|
|
|
|
|
|
|
|
|
| |
* PollScheduler and all subclasses now use the _terminated_tasks
variable to check whether or not _terminate_tasks() has been called,
and behave appropriately in that case.
* The _schedule_tasks() method now has documentation about the
relationship with _terminate_tasks() and _terminated_tasks.
|
|
|
|
|
| |
This prevents it from being called while the _schedule_tasks()
implementation is running, in order to avoid potential interference.
|
|
|
|
|
| |
This allows PollScheduler instances to do basic cleanup and terminate
gracefully when SIGINT or SIGTERM signals are received.
|
| |
|
|
|
|
|
| |
BinpkgVerifier was erroneusly sending parallel-fetch output to stdout.
Thanks to Jeremy Olexa <darkside@g.o> for reporting.
|
|
|
|
|
| |
which is a callable that should return True when it is desirable for
the _schedule_wait() method to return.
|
|
|
|
|
| |
use it in IpcDaemonTestCase to implement a 40 second timeout
in test cases.
|
| |
|
|
|
|
|
|
|
| |
all build logs to be compressed while they are being written. Log file
names have an extension that is appropriate for the compression type.
Currently, only gzip(1) compression is supported, so build logs will
have a '.gz' extension when this feature is enabled.
|
|
|
|
|
|
| |
anymore, now that PollScheduler._unregister() has be fixed to discard
unhandled events (so that reallocation of file descriptors no longer
triggers erroneous delivery of stale events).
|
|
|
|
| |
_unregister() automatically discards stale events now.
|
|
|
|
|
|
|
|
|
| |
that belong to the unregistered file, in order to prevent these
events from being erroneously delivered to a future handler
that is using a reallocated file descriptor of the same numeric
value (causing extremely confusing bugs). Note that this is was
the cause of the intermittent bug that forced me to disable
EbuildIpcDaemon by default.
|
| |
|
|
|
|
|
| |
to use as an alternative to hanging up the scheduler in a blocking
waitpid call.
|
| |
|
|
|
|
|
|
| |
StopIteration instead.
* Add an optional timeout parameter to PollScheduler._schedule_wait()
(this will be used in a later commit).
|
| |
|
|
|
|
|
|
| |
(2to3-3.1 -f except -nw ${FILES})
svn path=/main/trunk/; revision=14289
|
|
|
|
|
|
|
| |
when _poll_event_queue contains an event for a file descriptor that has
already been unregistered.
svn path=/main/trunk/; revision=14185
|
|
|
|
| |
svn path=/main/trunk/; revision=13690
|
|
Thanks to Sebastian Mingramm (few) <s.mingramm@gmx.de> for this patch.
svn path=/main/trunk/; revision=13668
|