| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This patch does not change emerge's behaviour.
|
|
|
|
| |
Fixes bug 399863.
|
| |
|
|
|
|
|
| |
This code will need to be called twice when safely unmerging symlinks
to directories (bug #384397).
|
| |
|
|
|
|
|
| |
This is triggered whenever emerge bails out while parallel-fetch is
running in the background.
|
| |
|
|
|
|
|
|
|
|
| |
Support serialization as JSON instead of pickle, so that
/var/cache/edb/mtimedb is human readable/writable, for those rare
cases where it may be useful. Currently, pickle is still used for
writes. The plan is to migrate to JSON after JSON read has been
supported for some time.
|
| |
|
|
|
|
|
|
|
|
| |
Support serialization as JSON instead of pickle, so that
/var/lib/portage/preserved_libs_registry is human readable/writable,
for those rare cases where it may be useful. Currently, pickle is still
used for writes. The plan is to migrate to JSON after JSON read has
been supported for some time.
|
|
|
|
|
| |
Also, add "allow-provide-virtuals = true" setting for
metadata/layout.conf which reduces it to a warning.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Run timeouts last, in order to minimize latency in termination of
iteration loops that they may control.
|
| |
|
| |
|
|
|
|
|
| |
The effect is be mostly the same, but it's more conistent to use
_do_poll for all blocking, plus it has EINTR handling.
|
|
|
|
|
|
|
|
|
| |
The IO watch is dynamically registered and unregistered as needed,
since we don't want to consider it as a valid source of events when
there are no child listeners. It's important to distinguish when there
are no valid sources of IO events, in order to avoid an endless poll
call if there's no timeout. This fixes possbible endless poll calls
since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.
|
|
|
|
|
|
| |
TODO: Find out why SIGCHLD signals aren't delivered during poll calls,
forcing us to wakeup in order to receive them. This fixes random hangs
in poll calls since commit 1979a6cdfcd8c6bae4565982d82d862be07ba5be.
|
| |
|
|
|
|
|
| |
This fixes an infinite loop since commit
1979a6cdfcd8c6bae4565982d82d862be07ba5be.
|
|
|
|
|
| |
This fixes performance issues introduced by commit
9c664779a16f6cbca8a5ffe7f6b0c68572819723.
|
| |
|
| |
|
|
|
|
|
| |
This ensures that the EventLoop will not stop due to a waitpid call
blocking forever.
|
|
|
|
|
|
|
| |
Sleep so that we don't waste cpu time by looping too quickly. This
makes EventLoop useful for code that needs to wait for timeout
callbacks regardless of whether or not any IO handlers are currently
registered.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
KeyError observed from WeakValueDictionary.pop() with PyPy 1.8,
despite None given as default. Note that PyPy 1.8 has the same
WeakValueDictionary code as CPython 2.7, so it may be possible for
CPython to raise KeyError here as well.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
These cases should have been included with commit
6a94a074aa0475173a51f3f726377d4c407e986b.
|
|
|
|
|
| |
These checks should be irrelevant, since the cancel() method is never
called on anything that hasn't been started already.
|
|
|
|
|
|
| |
IO event handlers may be re-entrant, in case something like
AbstractPollTask._wait_loop(), needs to be called inside a handler for
some reason.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we close all open file descriptors after a fork, with PyPy 1.8 it
triggers "[Errno 9] Bad file descriptor" later in the subprocess.
Apparently it is holding references to file descriptors and closing
them after they've already been closed and re-opened for other
purposes. As a workaround, we don't close the file descriptors, so
that they won't be re-used and therefore we won't be vulnerable to this
kind of interference.
The obvious caveat of not closing the fds is that the subprocess can
hold locks that belonged to the parent process, even after the parent
process has released the locks. Hopefully this won't be a major problem
though, since the subprocess has to exit at release the lock
eventually, when the EbuildFetcher or _MergeProcess task is complete.
|
|
|
|
|
|
|
| |
Silently handle EINTR, which is normal when we have received a signal
such as SIGINT. Also, raise StopIteration in order to break out of our
current iteration and respond appropriately to the signal as soon as
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 infinite loops triggered by Ctrl-C, where timeout calls
would exhaust the poll event queue because _poll was not re-entrant.
Now, re-entrance is only prohibited for individual callback functions,
in order to protect against infinite recursion.
|
| |
|