def __init__(self, node_name='simple_scheduler', period=rospy.Duration(1.0)): """ Constructor. """ rospy.init_node(node_name) self.ready_queue = PriorityQueue() """ Queue of waiting requests. """ self.blocked_queue = PriorityQueue() """ Queue of blocked requests. """ self.period = period """ Time duration between periodic rescheduling. """ self.notification_set = set() """ Set of requester identifiers to notify. """ self.timer = rospy.Timer(self.period, self.reschedule) self.lock = threading.RLock() """ Big Scheduler Lock. """ self.pool = SchedulerClients(lock=self.lock) """ Resource pool of known ROCON clients. """ self.sch = Scheduler(self.callback, lock=self.lock) """ Scheduler request handler. """ # Handle messages until canceled. rospy.spin()