| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
display more often than necessary and avoids showing inconsistent counts.
svn path=/main/trunk/; revision=11099
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parameter to control whether the message is sent to stdout or stderr.
When level >= logging.WARNING then the message is sent to stderr,
otherwise it is sent to stdout. The noiselevel is passed directly to
writemsg().
* Use writemsg_level() for handling merge messages from dblink and add
appropriate noiselevel values to each call.
* Add a writemsg_level parameter to portage.env_update() so that dblink
can pass in dblink._display_merge() as a means to redirect output back
to the scheduler for appropriate handling when running in the background.
svn path=/main/trunk/; revision=11098
|
|
|
|
| |
svn path=/main/trunk/; revision=11097
|
|
|
|
|
|
|
|
|
| |
tracks whether or not any of it's attributes have changed since the last
time it was displayed, so the it's only displayed when something has changed.
Unlike before, now the display should always update whenever a relevant change
occurs.
svn path=/main/trunk/; revision=11096
|
|
|
|
|
|
| |
cancelling it.
svn path=/main/trunk/; revision=11095
|
|
|
|
|
|
|
|
| |
so that any attempts to read from stdin will immediately return EOF instead
of blocking indefinitely. TODO: Use job control functions like tcsetpgrp()
to control access to stdin.
svn path=/main/trunk/; revision=11093
|
|
|
|
|
|
| |
instead of SubProcess.
svn path=/main/trunk/; revision=11092
|
|
|
|
| |
svn path=/main/trunk/; revision=11076
|
|
|
|
|
|
| |
Scheduler._display_status().
svn path=/main/trunk/; revision=11075
|
|
|
|
|
|
| |
* Tweak emergelog() so that it won't interfere with the scheduler summary.
svn path=/main/trunk/; revision=11073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Create a new MiscFunctionsProcess class derived from SpawnProcess.
* Add "background" support to the SpawnProcess class and split out a
_spawn() template function so MiscFunctionsProcess can override it.
* Rename the existing EbuildPhase class to EbuildProcess.
* Create a new EbuildPhase class derived from CompositeTask. This class
spawns the EbuildProcess and MiscFunctionsProcess classes as sub-tasks.
svn path=/main/trunk/; revision=11072
|
|
|
|
|
|
| |
patch.
svn path=/main/trunk/; revision=11070
|
|
|
|
|
|
| |
it's ever needed.
svn path=/main/trunk/; revision=11069
|
|
|
|
|
|
|
| |
module so that it can be used as an interface for both writemsg() and
writemsg_stdout().
svn path=/main/trunk/; revision=11066
|
|
|
|
| |
svn path=/main/trunk/; revision=11065
|
|
|
|
|
|
|
|
|
| |
Scheduler._schedule_tasks() is called. For example:
>>> Jobs: 2 running, 0 merges, load average: 0.34, 0.46, 0.27
svn path=/main/trunk/; revision=11064
|
|
|
|
|
|
| |
MAKEOPTS.
svn path=/main/trunk/; revision=11063
|
|
|
|
|
|
| |
environment, in case the default values have been overridden.
svn path=/main/trunk/; revision=11062
|
|
|
|
|
|
| |
that portage is first in the resume list.
svn path=/main/trunk/; revision=11061
|
|
|
|
|
|
|
|
| |
emulate elog's mod_echo module to show the 'error' level messages, which should
include the important die message. This is implemented by adding a private
hook inside elog_process() which the scheduler uses to collect error messages.
svn path=/main/trunk/; revision=11056
|
|
|
|
|
|
|
| |
build or install. This is especially useful when using --jobs or --keep-going
since there can be multiple failures.
svn path=/main/trunk/; revision=11055
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
introduced.
* Handle multiple failed builds when buildinding in parallel.
* Fix Scheduler._do_merge_exit() to remove the correct package since it's
not always at position 0 when using --jobs.
in parallel, so
svn path=/main/trunk/; revision=11054
|
|
|
|
|
|
|
| |
do the job now. Also, hide SubProcess.files since there's no reason to expose
it.
svn path=/main/trunk/; revision=11053
|
|
|
|
|
|
|
| |
and remove the related code from SequentialTaskQueue.schedule() since
this makes it obsolete.
svn path=/main/trunk/; revision=11052
|
|
|
|
|
|
|
|
|
| |
queue between _poll_loop() and _schedule_wait(). This solves an intermittent
KeyError from _poll_loop() which occured when an event handler called
_schedule_wait() which unregistered an event handler for an event that
_poll_loop() had already recieved but hadn't processed yet.
svn path=/main/trunk/; revision=11051
|
|
|
|
|
|
|
| |
before restarting in _restart_if_necessary() to kill any parallel-fetch tasks
that may still be running.
svn path=/main/trunk/; revision=11050
|
|
|
|
|
|
|
|
|
| |
_wait() to make sure everything is cleaned up before wait() returns.
This might solve an intermittent KeyError that is sometimes raised from
the main poll() loop when a handler is no longer registered for a poll()
event that has occurred.
svn path=/main/trunk/; revision=11049
|
|
|
|
|
|
|
| |
avoid stale events that can trigger a KeyError in Scheduler._poll_loop()
if the event's file descriptor no longer has a registered handler.
svn path=/main/trunk/; revision=11047
|
|
|
|
|
|
|
|
|
| |
* Add async support for pkg_prerm and pkg_postrm.
* Add missing "treetype" parameter to dblink constructor calls.
* Fix SubProcess._wait() to check self.returncode _after_ calling
the scheduler.
svn path=/main/trunk/; revision=11045
|
|
|
|
|
|
|
| |
scheduler's poll loop to run so that other parallel tasks aren't starved for
output handling while pkg_preinst and pkg_postinst are executing.
svn path=/main/trunk/; revision=11044
|
|
|
|
|
|
| |
it's now handled inside the _schedule() call.
svn path=/main/trunk/; revision=11043
|
|
|
|
|
|
| |
queue is empty.
svn path=/main/trunk/; revision=11042
|
|
|
|
|
|
| |
since it was only used by can_poll_pty().
svn path=/main/trunk/; revision=11040
|
|
|
|
|
|
|
|
|
| |
blocking forever, replace it with a simpler test on /dev/null that's
derived from a test in a glib2 configure script.
* Remove PtyReaderTestCase since it has the same problem as can_poll_pty().
svn path=/main/trunk/; revision=11039
|
|
|
|
|
|
|
|
|
| |
so see any error message it generates (due to PipeReader closing it's
end of the pty). The error message is irrelevant since all we want to
know is whether or not the data is successfully transmitted through the
pty.
svn path=/main/trunk/; revision=11037
|
|
|
|
|
|
| |
to be committed yet.
svn path=/main/trunk/; revision=11035
|
|
|
|
|
|
| |
entries are correctly from the Packages index.
svn path=/main/trunk/; revision=11034
|
|
|
|
|
|
|
|
| |
merge, add a FakeVartree.sync() method and so that the same FakeVartree
can be reused. Package counters and timestamps are used to validate package
instances during each sync() call.
svn path=/main/trunk/; revision=11033
|
|
|
|
|
|
| |
package has already failed.
svn path=/main/trunk/; revision=11032
|
|
|
|
|
|
|
| |
built or extracted). This will allow additional jobs to spawn sooner in
some cases when there may be idle resources.
svn path=/main/trunk/; revision=11031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that automatically returns early from any recursive calls that the
_schedule_tasks() call might trigger. This makes _schedule() safe to call from
inside exit listeners.
* Call _schedule() inside Scheduler._job_exit() to trigger a new job when
possible.
* Fix SequentialTaskQueue._task_exit() to avoid a potential KeyError if the
task had already been removed from self.running_tasks for some reason.
svn path=/main/trunk/; revision=11030
|
|
|
|
| |
svn path=/main/trunk/; revision=11029
|
|
|
|
| |
svn path=/main/trunk/; revision=11028
|
|
|
|
| |
svn path=/main/trunk/; revision=11027
|
|
|
|
|
|
| |
be set when calling _set_digraph().
svn path=/main/trunk/; revision=11026
|
|
|
|
|
|
|
|
|
|
|
| |
read data from a pty device. The test only runs the first time that the
can_poll_pty() function is called (currently happens when the first
PollScheduler instance is created). The test is known to fail on Darwin and
we're not sure how many other kernels might have a similar problem, this
runtime test allows us to avoid having to maintain special cases for various
kernels.
svn path=/main/trunk/; revision=11025
|
|
|
|
| |
svn path=/main/trunk/; revision=11024
|
|
|
|
|
|
|
| |
fail on some operating systems such as Darwin that do not support poll() on
pty devices.
svn path=/main/trunk/; revision=11023
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pipe and assert that the data written to the pipe is identical to the data
read from the pipe. In order to implement this test, several useful classes
have been added:
* PipeReader
Reads output from one or more files and saves it in memory,
for retrieval via the getvalue() method. This is driven by
the scheduler's poll() loop, so it runs entirely within the
current process.
* QueueScheduler
Add instances of SequentialTaskQueue and then call run().
The run() method returns when no tasks remain.
* TaskScheduler
A simple way to handle scheduling of AsynchrousTask instances. Simply
add tasks and call run(). The run() method returns when no tasks remain.
svn path=/main/trunk/; revision=11022
|
|
|
|
|
|
|
|
| |
Scheduler._pkg().
* Define digraph.__contains__ for containment tests via the "in" operator.
svn path=/main/trunk/; revision=11021
|