LINUX.ORG.RU

python: dbus + hal непонятки


0

0

цель кода -- определить, должен-ли раздел, согласно политике hal,
монтироваться автоматически, и смонтирован-ли он в действительности.

однако, по непонятной мне причине, на строчке "should_mount = storage_udi_obj.GetProperty..." возникает большая (~10 сек) задержка. если строчки поменять местами (сначала получать значение should_mount, а затем is_mounted), то задержка исчезает и код выполняется моментально. в чем причина?


import dbus

bus = dbus.SystemBus()

hal_manager_obj = bus.get_object("org.freedesktop.Hal", 
        "/org/freedesktop/Hal/Manager")
hal_manager = dbus.Interface(hal_manager_obj, 
        "org.freedesktop.Hal.Manager")

volume_udi_list = hal_manager.FindDeviceByCapability ("volume")

for volume_udi in volume_udi_list:
    volume_udi_obj = bus.get_object ("org.freedesktop.Hal", volume_udi)

    storage_udi = volume_udi_obj.GetProperty("block.storage_device",
            dbus_interface="org.freedesktop.Hal.Device")
    storage_udi_obj = bus.get_object ("org.freedesktop.Hal", storage_udi)

    is_mounted = volume_udi_obj.GetProperty("volume.is_mounted", 
            dbus_interface="org.freedesktop.Hal.Device")
    should_mount = storage_udi_obj.GetProperty("storage.policy.should_mount", 
            dbus_interface="org.freedesktop.Hal.Device")

    print "%s (%s) - %s" % (volume_udi, should_mount, is_mounted)

зы: и подскажите хороший rtfm по dbus и hal.
anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.