2010-12-10 2 views
1

Я пытаюсь заблокировать мою заставку GNOME, однако метод dbus .Lock ждет ответа. Я бы хотел, чтобы не дождитесь ответа (просто отправьте сигнал, чтобы заблокировать заставку, и продолжайте с жизнью). Как мне это сделать? (На практике этот код находится в потоке, поэтому я продолжаю жить, но я все еще получаю неприятную ошибку)вызов метода dbus на прокси без блокировки (или без таймаута)

session_bus = dbus.SessionBus()                                  
screensaver_proxy = session_bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')                                                                                                                              
locked = screensaver_proxy.Lock(dbus_interface='org.gnome.ScreenSaver') 
print "HELLO" # will never get called, due to: 
/* 
    locked = screensaver_proxy.Lock(dbus_interface='org.gnome.ScreenSaver') 
    File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 68, in __call__ 
    return self._proxy_method(*args, **keywords) 
    File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call__ 
    **keywords) 
    File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 620, in call_blocking 
    message, timeout) 
    DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken 
*/ 

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^