163,164c163
< _suspendedReady = false;
< }
---
> _suspendedReady = scheduler.suspend(this);
166,168c165,172
< if (procKind() != ::sc_core::SC_METHOD_PROC_ &&
< scheduler.current() == this) {
< scheduler.yield();
---
> if (procKind() != ::sc_core::SC_METHOD_PROC_ &&
> scheduler.current() == this) {
> // This isn't in the spec, but Accellera says that a thread that
> // self suspends should be marked ready immediately when it's
> // resumed.
> _suspendedReady = true;
> scheduler.yield();
> }
181c185
< ready();
---
> scheduler.resume(this);