-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interrupt the orbit analysis if the mission duration changes #2799
Conversation
MeanEquinoctialElements(orbital_elements.osculating_equinoctial_elements_, | ||
orbital_elements.sidereal_period_); | ||
RETURN_IF_ERROR(mean_equinoctial_elements.status()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should change the macro to automatically extract the status when give a base::StatusOr
.
base/jthread.hpp
Outdated
@@ -123,6 +124,13 @@ class this_stoppable_thread { | |||
friend jthread MakeStoppableThread(Function&& f, Args&&... args); | |||
}; | |||
|
|||
#define RETURN_IF_STOPPED \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am wondering if this should take (optionally) a parameter to let the caller propagate a useful message.
I am also wondering if our macro names should systematically start with PRINCIPIA_
.
retest this please |
In order to do that:
operator=
of our implementation ofjthread
;RETURN_IF_STOPPED
;OrbitalElements
and related functions;RETURN_IF_STOPPED
;Status
for move semantics (what year is this).The analyser can lag a little bit when updating the mission duration during the actual analysis (as opposed to the integration), I think the remaining large atomic operations are vector destructions; not much we can easily do about those.
Drive-by changes: take an exclusive lock to swap, not a reader lock, don’t flow twice to the same time.