osrf / rmf_core

Provides the centralized functions of RMF: scheduling, etc.
Apache License 2.0
102 stars 41 forks source link

Always respond to negotiations #138

Closed mxgrey closed 4 years ago

mxgrey commented 4 years ago

In some cases race conditions can cause a negotiation to get "lost" for a participant, in particular if a negotiation is still ongoing while a participant finishes its current task.

This PR fixes that problem so that if a negotiation Responder dies or a certain amount of time passes, then the negotiation is automatically forfeited. This guarantees that the negotiation never gets stuck and that the schedule never gets locked up trying to wait for a negotiation to finish.

ddengster commented 4 years ago

LGTM