As far as I understand the issue, any Python process has a sort of "main" thread. When the main thread exits, the Python process will exit if there are only daemon threads around. If there are any non-daemon threads, the Python process will only exit after those threads are finished. Or, as the documentation says: "The entire Python program exits when no active non-daemon threads are left."
Kind regards, Benjamin -- http://mail.python.org/mailman/listinfo/python-list