两次访问系统dbus会导致分段错误

时间:2014-11-13 14:40:56

标签: python segmentation-fault race-condition glib dbus

Dbus让我头疼。即两次调用SystemBus(),在大多数情况下会给我分段错误。有时它会产生一些其他随机错误,所以我猜这是一种竞争条件。

from dbus.mainloop.glib import DBusGMainLoop
from time import sleep
import threading
import dbus, gobject


# Monitor usb on a separate thread
def monitor_usb():
    DBusGMainLoop(set_as_default=True)
    dbus.SystemBus()                      # Probably source of error
    gobject.threads_init()
    gobject.MainLoop().run()
thread=threading.Thread(target=monitor_usb)
thread.daemon=True
thread.start()


# Calling this while monitor_usb is running
# will cause segmentation fault
dbus.SystemBus()
sleep(10)

有没有办法解决这个问题?

0 个答案:

没有答案