Replies: 1 comment 1 reply
-
It gets called via the rxcpp job pipeline, with the entry point being here.
The best way to prevent any delay would be if all long-running jobs, such as planning and negotiation, would always take place on threads / workers that are not the main event loop. There is a mechanism in rxcpp to ensure that a certain job will always be on a specific worker, but I haven't found a clean way to prevent a job from being done on a certain worker. Without that ability I don't see a way to prevent long running jobs from sometimes blocking the main event loop. This limitation was one of the motivating factors for migrating to Rust+Bevy.
Data races, which means corrupted memory, undefined behavior, and segmentation faults. We could try to prevent data races using mutexes, but those are very error prone and easily end up causing deadlocks when small subtle mistakes are made. |
Beta Was this translation helpful? Give feedback.
-
release: main/iron 20231229
I notice that the robot fleet adapter
follow_new_path
method is invoked from here.1 What calls the
operator()
method?2. There may be a delay between from the time it is scheduled until the time it is executed, see below snippet. and in the delay maybe very high, in the order of tens of seconds, eg during busy traffic, multiple robots etc. how can the delay be minimized?
Beta Was this translation helpful? Give feedback.
All reactions