| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
compatibility with python-2.6_beta. Thanks to Arfrever for reporting.
svn path=/main/trunk/; revision=11020
|
|
|
|
|
|
| |
spawn call fails.
svn path=/main/trunk/; revision=11019
|
|
|
|
|
|
|
|
| |
portdbapi does too before generating metadata, and without it, a previous
CATEGORY can leak into the ebuild env and corrupt it (breaks lots of packages
that reference $CATEGORY).
svn path=/main/trunk/; revision=11015
|
|
|
|
| |
svn path=/main/trunk/; revision=11014
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make output handlers unregister themselves and call wait() to notify
exit listeners immediately. This makes the exit listeners more useful
for scheduling tasks. This makes the poll loop nice an clean because
it just calls the handlers and then the handlers can do the scheduling
when necessary.
* Make SequentialTaskQueue.add() and addFront() trigger scheduling
internally, so that it's more of a chain reaction than something that has
to be done explicitly.
svn path=/main/trunk/; revision=11013
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
options:
* Split out a PollLoop base class from Scheduler and derive a MetadataRegen
class to handle parallel scheduling for --regen.
* Add pordbapi._metadata_process() and _metadata_callback() methods to
implement asynchronous metadata generation. One method returns an
EbuildMetadataPhase instance to encapsulate the async task. The other
method is called to save the metadata when the process completes
successfully. These methods share code with aux_get to avoid duplicate
code.
svn path=/main/trunk/; revision=11012
|
|
|
|
|
|
|
| |
for the replaced package to Scheduler._completed_tasks so that it's properly
accounted for in _dependent_on_scheduled_merges().
svn path=/main/trunk/; revision=11011
|
|
|
|
|
|
|
|
|
|
|
| |
triggered when calling exit listeners.
* Make SequentialTaskQueue use exit listeners to trigger scheduling as
soon as a task exits. This makes it possible for the queues to
automatically schedule new tasks while scheduler remains in it's
poll() loop.
svn path=/main/trunk/; revision=11008
|
|
|
|
|
|
|
|
|
| |
errors commonly occur when ^C is used to kill emerge.
* Remove spawned pids from portage.process.spawned_pids immediately in order
to avoid a race condition for removing it.
svn path=/main/trunk/; revision=11007
|
|
|
|
|
|
|
| |
version of portage is the same exact version as the currently running
instance.
svn path=/main/trunk/; revision=11006
|
|
|
|
| |
svn path=/main/trunk/; revision=11005
|
|
|
|
|
|
| |
constructor.
svn path=/main/trunk/; revision=11003
|
|
|
|
|
|
|
|
|
|
|
| |
class. When in background mode, fetch output is logged to emerge-fetch.log.
This solves a problem with calling doebuild(returnpid=1) and then doebuild
calling fetch() synchronously. In that case, doebuild would return an int
if fetch() failed (including when running pkg_nofetch), which would lead
to a TypeError since doebuild(returnpid=1) is supposed to return a list
containing a spawned pid.
svn path=/main/trunk/; revision=11002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"jobs" queue.
* Add support for logging fetches to /var/log/emerge-fetch.log when
--jobs is enabled. Previously this log was only used for
the parallel-fetch feature but now it's also used for --jobs.
The scheduler's "prefetch" queue has been renamed to "fetch" since
it's not exclusively used for parallel-fetch anymore.
* Pass the "background" parameter from Binpkg in to the BinpkgFetcher
instance, to send output to emerge-fetch.log instead of stdout.
svn path=/main/trunk/; revision=10999
|
|
|
|
| |
svn path=/main/trunk/; revision=10998
|
|
|
|
|
|
| |
blockers) in the correct order when building in parallel.
svn path=/main/trunk/; revision=10996
|
|
|
|
|
|
| |
"uninstall" nodes.
svn path=/main/trunk/; revision=10995
|
|
|
|
|
|
|
|
|
| |
* Allow _choose_pkg() to choose an uninstall node when it reaches the front
of the queue. TODO: fix order for uninstall operations.
* Fix _dependent_on_scheduled_merges() to handle direct circular deps
correctly.
svn path=/main/trunk/; revision=10994
|
|
|
|
|
|
| |
detected for a given _schedule_main() call.
svn path=/main/trunk/; revision=10993
|
|
|
|
|
|
| |
change if it results in a handler being unregistered.
svn path=/main/trunk/; revision=10992
|
|
|
|
|
|
| |
"nomerge" nodes from "uninstall" nodes.
svn path=/main/trunk/; revision=10991
|
|
|
|
| |
svn path=/main/trunk/; revision=10990
|
|
|
|
|
|
|
|
|
|
|
|
| |
triggering a tight loop. Also fix Subprocess._wait() to only schedule
when self.registered is True.
* Add an assertion inside Scheduler._schedule_main() to try and detect tight
loops like the one above.
* Fix typo in Scheduler._merge_exit().
svn path=/main/trunk/; revision=10989
|
|
|
|
|
|
| |
CompositeTask is designed for self._current_task to be set.
svn path=/main/trunk/; revision=10988
|
|
|
|
|
|
|
| |
self._current_task hasn't been properly updated after calling wait on
it.
svn path=/main/trunk/; revision=10987
|
|
|
|
| |
svn path=/main/trunk/; revision=10986
|
|
|
|
|
|
| |
and returns None.
svn path=/main/trunk/; revision=10985
|
|
|
|
|
|
| |
doesn't have a remove() method until python-2.5.
svn path=/main/trunk/; revision=10984
|
|
|
|
|
|
|
|
| |
options that are analogous to the corresponding `make` options. Input and
output handling still need work to make it look better and act more friendly
for things like interactive ebuilds that require input.
svn path=/main/trunk/; revision=10983
|
|
|
|
|
|
| |
* Make Binpkg pass the current background setting into subtasks.
svn path=/main/trunk/; revision=10982
|
|
|
|
|
|
| |
EbuildPhase class.
svn path=/main/trunk/; revision=10981
|
|
|
|
| |
svn path=/main/trunk/; revision=10980
|