File tree Expand file tree Collapse file tree 3 files changed +9
-4
lines changed Expand file tree Collapse file tree 3 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -74,7 +74,8 @@ void Trace::start(TimeType time) {
7474 if (theSched ()->getSchedulerDepth () == 0 and not theTrace ()->inInvokeContext ()) {
7575 at_sched_depth_zero_ = true ;
7676 theTrace ()->setInInvokeContext (true );
77- theTrace ()->beginSchedulerLoop ();
77+ auto const end_between_sched_time = theTrace ()->beginSchedulerLoop ();
78+ time = std::max (time, end_between_sched_time);
7879 }
7980
8081 auto const trace_id = auto_registry::handlerTraceID (handler_);
Original file line number Diff line number Diff line change @@ -429,13 +429,15 @@ void Trace::pendingSchedulerLoop() {
429429 between_sched_event_ = TraceProcessingTag{};
430430}
431431
432- void Trace::beginSchedulerLoop () {
432+ TimeType Trace::beginSchedulerLoop () {
433+ auto const cur_time = timing::getCurrentTime ();
433434 // Always end between-loop event. The pending case is not always triggered.
434- endProcessing (between_sched_event_, timing::getCurrentTime () );
435+ endProcessing (between_sched_event_, cur_time );
435436 between_sched_event_ = TraceProcessingTag{};
436437
437438 // Capture the current open event depth.
438439 event_holds_.push_back (open_events_.size ());
440+ return cur_time;
439441}
440442
441443void Trace::endSchedulerLoop () {
Original file line number Diff line number Diff line change @@ -172,8 +172,10 @@ struct Trace : runtime::component::Component<Trace>, TraceLite {
172172
173173 /* *
174174 * \brief Scheduler trigger for \c sched::SchedulerEvent::BeginSchedulerLoop
175+ *
176+ * \return the time the between scheduler event was ended
175177 */
176- void beginSchedulerLoop ();
178+ TimeType beginSchedulerLoop ();
177179
178180 /* *
179181 * \brief Scheduler trigger for \c sched::SchedulerEvent::EndSchedulerLoop
You can’t perform that action at this time.
0 commit comments