base: Add argument to Coroutine class to not run on creation
authorMichiel W. van Tol <Michiel.VanTol@arm.com>
Fri, 31 Aug 2018 11:50:20 +0000 (12:50 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Fri, 28 Jun 2019 08:25:20 +0000 (08:25 +0000)
commit08e7849f2710e6b62aa07db86e356edb15a99f9c
tree0c8a11a85ad57db68198072b89519e403a1168c9
parentcb2be9940a055bf73647e9eef3779992d5af36b7
base: Add argument to Coroutine class to not run on creation

In some cases, the point where you create a Coroutine is not the same as
where you want to start running it (and want it to switch back to). This
leads to the unnecessary overhead of switching in and out of the
Coroutine. This change adds an optional boolean argument to the
constructor for the Coroutine class to allow for overriding the default
behavior of running the Coroutine upon creation, which in specific cases
can be used to avoid the unnecessary overhead and improve simulator
performance.

Change-Id: I044698f85e81ee4144208aee30d133bcb462d35d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18588
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/base/coroutine.hh
src/base/coroutine.test.cc