Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Enable FD_CLOEXEC for non-blocking pipes. | Zac Medico | 2013-01-03 | 1 | -2/+11 |
| | |||||
* | Revert "AsynchronousLock: override _async_wait_cb" | Zac Medico | 2013-01-01 | 1 | -3/+3 |
| | | | | | | This reverts commit 83cfc04df383b56592b89f1dc58428c0e8d09925. This override could be bad if the base class needs to call _async_wait for some reason. | ||||
* | AsynchronousLock: override _async_wait_cb | Zac Medico | 2013-01-01 | 1 | -3/+3 |
| | |||||
* | _LockThread: use thread-safe EventLoop.idle_add() | Zac Medico | 2012-12-31 | 1 | -35/+8 |
| | |||||
* | AsynchronousTask: add _async_wait method | Zac Medico | 2012-12-30 | 1 | -1/+1 |
| | | | | | | | | For cases where _start returns synchronously, this method is a convenient way to trigger an asynchronous call to self.wait() (in order to notify exit listeners), avoiding excessive event loop recursion (or stack overflow) that synchronous calling of exit listeners can cause. | ||||
* | _LockThread: daemon = True | Zac Medico | 2012-11-29 | 1 | -0/+1 |
| | |||||
* | PollScheduler: remove register/unregister methods | Zac Medico | 2012-10-05 | 1 | -4/+4 |
| | | | | | | | These methods were aliases for the EventLoop io_add_watch and source_remove methods. Migrating to the EventLoop method names allows an EventLoop instance to substitute for a PollScheduler inside subclasses of AbstractPollTask. | ||||
* | AbstractPollTask: merge _wait from subclass | Zac Medico | 2012-02-11 | 1 | -12/+0 |
| | |||||
* | Use IO_* constants where appropriate. | Zac Medico | 2012-02-09 | 1 | -5/+4 |
| | |||||
* | Use AbstractPollTask._wait_loop() more. | Zac Medico | 2012-02-08 | 1 | -4/+2 |
| | |||||
* | Use PollScheduler iteration method. | Zac Medico | 2012-02-07 | 1 | -5/+5 |
| | |||||
* | PollScheduler: glib.io_add_watch() compatibility | Zac Medico | 2012-02-07 | 1 | -0/+4 |
| | |||||
* | AsynchronousTask: merge _waiting from subclass | Zac Medico | 2012-02-07 | 1 | -5/+2 |
| | |||||
* | Fix some warnings found by pylint. | Arfrever Frehtes Taifersar Arahesis | 2011-12-18 | 1 | -2/+2 |
| | |||||
* | Handle OSError from os.read and loop if needed. | Zac Medico | 2011-12-01 | 1 | -2/+2 |
| | | | | | | Looping fixes EbuildMetadataPhase failures for ebuilds that produce more than 4096 bytes of metadata, broken since commit b432a1b3051d91546649e8f3190675767461d8e8. | ||||
* | AsynchronousLock: use os.read/write | Zac Medico | 2011-12-01 | 1 | -15/+28 |
| | | | | | | Similar to commit b432a1b3051d91546649e8f3190675767461d8e8, don't use unecessary file objects. It also happens that these changes fix compatibility issues with PyPy. | ||||
* | python3.2 fixes: ResourceWarning: unclosed file | Zac Medico | 2011-08-25 | 1 | -0/+13 |
| | |||||
* | _LockProcess: fix _poll returncodev2.2.0_alpha37 | Zac Medico | 2011-05-26 | 1 | -1/+1 |
| | | | | | We don't want to return the returncode directly from the subprocess. Return self.returncode instead. | ||||
* | _LockProcess: remove redundant scheduler attrib | Zac Medico | 2011-05-26 | 1 | -1/+1 |
| | |||||
* | AsynchronousLock: check type in _poll and _cancel | Zac Medico | 2011-05-26 | 1 | -3/+3 |
| | |||||
* | _LockProcess.unlock: assert successful returncode | Zac Medico | 2011-05-17 | 1 | -0/+3 |
| | |||||
* | test_asynchronous_lock: simulate SIGINT from tty | Zac Medico | 2011-05-17 | 1 | -2/+2 |
| | |||||
* | AsynchronousLock: implement _poll() and test | Zac Medico | 2011-05-17 | 1 | -0/+10 |
| | |||||
* | _LockProcess: handle process failure more | Zac Medico | 2011-05-15 | 1 | -11/+28 |
| | |||||
* | _LockProcess: handle process failure if cancelled | Zac Medico | 2011-05-15 | 1 | -3/+10 |
| | |||||
* | AsynchronousLock: implement _cancel | Zac Medico | 2011-03-17 | 1 | -0/+8 |
| | |||||
* | AsynchronousTask: add _cancel template method | Zac Medico | 2011-03-16 | 1 | -0/+4 |
| | |||||
* | Update copyright headers for touched files. | Zac Medico | 2011-01-16 | 1 | -1/+1 |
| | |||||
* | AsynchronousLock: use process by default | Zac Medico | 2011-01-13 | 1 | -1/+9 |
| | | | | | | | The default behavior is to use a process instead of a thread, since there is currently no way to interrupt a thread that is waiting for a lock (notably, SIGINT doesn't work because python delivers all signals to the main thread). | ||||
* | AsynchronousLock: protect _wait() from recursion | Zac Medico | 2010-10-22 | 1 | -3/+6 |
| | |||||
* | Make _LockThread.lock_obj private. | Zac Medico | 2010-10-22 | 1 | -6/+6 |
| | |||||
* | AsynchronousLock: assert state in unlock() | Zac Medico | 2010-10-22 | 1 | -0/+4 |
| | |||||
* | lock-helper.py: use PORTAGE_PYM_PATH for safety | Zac Medico | 2010-10-21 | 1 | -1/+1 |
| | |||||
* | AsynchronousLock: use subprocess if no threads | Zac Medico | 2010-10-21 | 1 | -17/+138 |
| | |||||
* | Add a new AsynchronousLock class that uses the portage.locks module to | Zac Medico | 2010-09-13 | 1 | -0/+103 |
acquire a lock asynchronously, using a background thread. |