blob: 621d148c742609906ada3a5d6e07aa79dd0ec10b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/usr/bin/env python
# Simple program to test locking; will acquire a lock on the hal device
# object representing the computer.
#
# usage: locking.py <numsecs>
import dbus
import sys
import time
import os
dev_udi = "/org/freedesktop/Hal/devices/computer"
duration = int(sys.argv[1])
pid = os.getpid()
reason = "locking.py pid %d"%pid
bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
devobj = bus.get_object("org.freedesktop.Hal", dev_udi)
dev = dbus.Interface(devobj, "org.freedesktop.Hal.Device")
#hal_service = bus.get_service("org.freedesktop.Hal")
#dev = hal_service.get_object (dev_udi, "org.freedesktop.Hal.Device")
print "I am %s with pid %d"%(bus.get_connection().get_unique_name(), pid)
print
print "Attempting to lock %s for %d secs"%(dev_udi, duration)
print "with reason '%s'"%reason
print
try:
dev.Lock(reason)
except Exception, e:
print "Locking failed"
reason = dev.GetProperty("info.locked.reason")
lock_svc = dev.GetProperty("info.locked.dbus_service")
print "Reason: '%s'"%reason
print "Locked by D-BUS basesvc: '%s'"%lock_svc
sys.exit(1)
print "Lock acquired; sleeping %d seconds"%duration
time.sleep(duration)
print "Releasing lock"
dev.Unlock()
print "Lock released"
|