Skip to content

Commit

Permalink
Defer busname ownership until init complete
Browse files Browse the repository at this point in the history
Avoid race conditions where applications expecting an object to be
present upon recipt of NameOwnerChanged find that the object hasn't
been created yet.

Change-Id: I4236a3898055a84b00e1eaf37f32e0192b683a0f
Signed-off-by: Brad Bishop <[email protected]>
  • Loading branch information
bradbishop committed Jul 11, 2016
1 parent fa73649 commit 70852a3
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion pychassisctl/chassis_control.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,9 @@ def emergency_shutdown_signal_handler(self):
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

bus = get_dbus()
name = dbus.service.BusName(DBUS_NAME, bus)
obj = ChassisControlObject(bus, OBJ_NAME)
mainloop = gobject.MainLoop()
name = dbus.service.BusName(DBUS_NAME, bus)

print "Running ChassisControlService"
mainloop.run()
Expand Down
2 changes: 1 addition & 1 deletion pydownloadmgr/download_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ def DownloadHandler(self,url,filename,path = None):
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = get_dbus()
name = dbus.service.BusName(DBUS_NAME, bus)
obj = DownloadManagerObject(bus, OBJ_NAME)
mainloop = gobject.MainLoop()
name = dbus.service.BusName(DBUS_NAME, bus)

print "Running Download Manager"
mainloop.run()
Expand Down
2 changes: 1 addition & 1 deletion pyfanctl/fan_control.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ def setMax(self):

dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = get_dbus()
name = dbus.service.BusName(DBUS_NAME,bus)
fan_control = FanControl(bus,OBJ_PATH)
mainloop = gobject.MainLoop()

print "Starting fan control"
fan_control.setMax()
name = dbus.service.BusName(DBUS_NAME,bus)
mainloop.run()

2 changes: 1 addition & 1 deletion pyflashbmc/bmc_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,9 +293,9 @@ def PrepareForUpdate(self):
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

bus = get_dbus()
name = dbus.service.BusName(DBUS_NAME, bus)
obj = BmcFlashControl(bus, OBJ_NAME)
mainloop = gobject.MainLoop()
name = dbus.service.BusName(DBUS_NAME, bus)

print "Running Bmc Flash Control"
mainloop.run()
Expand Down
2 changes: 1 addition & 1 deletion pyipmitest/ipmi_debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ def line(self, data):
def main():
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
name = dbus.service.BusName(DBUS_NAME, bus)
obj = IpmiDebug(bus, OBJ_NAME)
mainloop = gobject.MainLoop()
r = ConsoleReader(obj)
name = dbus.service.BusName(DBUS_NAME, bus)

print ("Enter IPMI packet as hex values. First three bytes will be used"
"as netfn and cmd.\nlun will be zero.")
Expand Down
2 changes: 1 addition & 1 deletion pysensormgr/sensor_manager2.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ def SensorChange(self,value,path=None):
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = get_dbus()
name = dbus.service.BusName(DBUS_NAME,bus)
root_sensor = SensorManager(bus,OBJ_PATH)


Expand All @@ -60,6 +59,7 @@ def SensorChange(self,value,path=None):
root_sensor.add(obj_path, sensor_obj)

mainloop = gobject.MainLoop()
name = dbus.service.BusName(DBUS_NAME,bus)
print "Starting sensor manager"
mainloop.run()

2 changes: 1 addition & 1 deletion pysystemmgr/system_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,9 +274,9 @@ def gpioInit(self,name):
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = get_dbus()
name = dbus.service.BusName(DBUS_NAME,bus)
obj = SystemManager(bus,OBJ_NAME)
mainloop = gobject.MainLoop()
name = dbus.service.BusName(DBUS_NAME,bus)

print "Running SystemManager"
mainloop.run()
Expand Down

0 comments on commit 70852a3

Please sign in to comment.