python, offlineimap and wakeups (outch)

Ethan Glasser-Camp glasse at cs.rpi.edu
Fri Mar 11 16:44:56 GMT 2011


On 03/10/2011 02:20 AM, Sebastian Spaeth wrote:
> Yep, the issue is not join per se, but calling it with a timeout. (or in
> our case, I introduced the timeout to Queue.get() in our
> threadexitmonitorloop (or whatever it is called). Without a timeout, we
> won't wake up, but we will also not react to ctrl-c (not sure about
> SIGTTERM). With a timeout, we react to ctrl-c, but wake up every 50ms.
> (modify your sample code to have a timeout in the .join() and recheck
> with powertop).

Wow, that totally sucks. The Python documentation even says: "It is not 
possible to interrupt an acquire on a lock."

I'm hesitant to go your route of sending SIGKILL to a process to 
"interrupt" it. The whole point of Ctrl-C is to send a "polite" shutdown 
message.

The good news is that it looks like this is fixed in Python 3.2:

http://bugs.python.org/issue8844

So all we need to do is make offlineimap compatible with Python 3 and we 
should be good to go :)

Ethan





More information about the OfflineIMAP-project mailing list