This Python module implements the scheduler interface for the Robotics in Concert (ROCON) project. It tracks resources and allocates them to ROCON services.
Simple ROCON scheduler node.
Parameters: |
|
---|
Queue of waiting requests.
Queue of blocked requests.
Time duration between periodic rescheduling.
Set of requester identifiers to notify.
Big Scheduler Lock.
Resource pool of known ROCON clients.
Scheduler request handler.
Scheduler request callback.
Called in the scheduler callback thread holding the Big Scheduler Lock.
See: concert_scheduler_requests.Scheduler documentation.
Grant any available resources to ready requests.
Notifies all affected requesters.
Free all resources allocated for this request.
Parameters: |
|
---|
Notify affected requesters.
Pre: | self.notification_set contains requesters to notify. |
---|---|
Post: | self.notification_set is empty. |
Add request to ready queue, making it wait.
Parameters: |
|
---|
Reject an invalid queue element.
Parameters: |
|
---|
Periodic rescheduling thread.
Moves requests that cannot be satisfied with currently-available resources to the blocked queue. Also checks the blocked queue for requests that can be satisfied due to newly-arrived resources.
Uses the Big Scheduler Lock to serialize these changes with operations done within the scheduler callback thread.