You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@ThadHouse thinks it shouldn't hang the program. @calcmogul in #3874 (comment) seems to think it should hang it. Either it should be fixed or documented.
The text was updated successfully, but these errors were encountered:
High level robot code has startSingle. Which means a stopped notifier is 100% perfectly valid user code. There should be no requirement that all notifiers are running to not hang sim.
I think that the implicit contract makes sense because missing a notifier event is undesirable. If the code leveraging the notifier performs a long-running task, the time should not increment until that task eventually calls HAL_WaitForNotifierAlarm, ensuring synchronization. Incrementing time before calling HAL_WaitForNotifierAlarm would result in time becoming out of sync.
Additionally, this implies that it would be a bug to perform a completely blocking operation without ultimately waiting on the notifier.
I think we should document the behavior more throughly and move on.
If notifiersWaiterCond.wait_for(ulock, std::chrono::duration<double>(1)); in hal::WaitNotifiers times out and doesn't exit the loop, I think it should print a warning telling the user that something is using a notifier incorrectly (and add this discussion there, or a pointer to it) .
This hangs:
@ThadHouse thinks it shouldn't hang the program. @calcmogul in #3874 (comment) seems to think it should hang it. Either it should be fixed or documented.
The text was updated successfully, but these errors were encountered: