83a85bb3fb
Currently the Curses code is broken. Importing offlineimap.ui.Curses will not succeed due to cyclic imports (threadutils imports ui, but ui wants threadutils.MultiLock). So Curses cannot be chosen. Incidentally, the only part in the code that uses "MultiLock" is the Curses UI, to prevent concurrent access from several threads to the ui-internal thread list and to IO resources such as the screen. Fortunately for these purposes we don't need a MultiLock, so we can do away with that implementation completely. A simple RLock that allows us to have a thread "own" a lock and makes other threads wanting access to the resource wait until the owning thread is finished. The MultiLock implementation looked a bit weird, so simplifying code here is a good thing, it might well be that we fix some "hangs" that have been reported (and that would only ever occur with the Curses UI). Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net> |
||
---|---|---|
.. | ||
__init__.py | ||
Blinkenlights.py | ||
Curses.py | ||
debuglock.py | ||
Machine.py | ||
Noninteractive.py | ||
TTY.py | ||
UIBase.py |