From: Gabe Black Date: Sat, 25 Aug 2018 00:19:39 +0000 (-0700) Subject: systemc: When a thread completes, yield to the scheduler. X-Git-Tag: v19.0.0.0~1727 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e95a3062415a27ddd8183fa3a621aba6198b1621;p=gem5.git systemc: When a thread completes, yield to the scheduler. Don't just fall off the end of the fiber and return to gem5. By calling yield, we ensure that remaining Processes are run and that bookkeeping is maintained correctly. Change-Id: Ifbe104e155cad29e40a89767a7c1f986399f784d Reviewed-on: https://gem5-review.googlesource.com/12264 Reviewed-by: Gabe Black Maintainer: Gabe Black --- diff --git a/src/systemc/core/process_types.hh b/src/systemc/core/process_types.hh index 7617d41ef..2dde4672a 100644 --- a/src/systemc/core/process_types.hh +++ b/src/systemc/core/process_types.hh @@ -94,6 +94,7 @@ class Thread : public Process thread->_needsStart = false; thread->run(); thread->terminate(); + scheduler.yield(); } }; friend class Context;