Exemple #1
0
    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()