systemc: Clear the current process when done with the eval phase.
authorGabe Black <gabeblack@google.com>
Tue, 2 Oct 2018 04:58:50 +0000 (21:58 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 16 Oct 2018 00:44:52 +0000 (00:44 +0000)
The current process will still be set sometimes when exiting from the
yield loop in the top of runReady in the scheduler. Clear it to ensure
that we don't think a process is running when it isn't.

Change-Id: Idd44689e10fadf4a3e3ec07c60d107c80a44d39f
Reviewed-on: https://gem5-review.googlesource.com/c/13201
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/core/scheduler.cc

index d57505517056b77fc4bc14781ec323605f2b691b..0071e2dd4274aed839167d8793d09a318eef5064 100644 (file)
@@ -280,6 +280,7 @@ Scheduler::runReady()
     do {
         yield();
     } while (getNextReady());
+    _current = nullptr;
 
     if (!empty) {
         _numCycles++;