Glenn Knickerbocker wrote:
James Johnson wrote:
Since the userstage does nothing to cause an autocommit to level 0 it
should remain at level -1.
CALLPIPE commits to the highest commit level of the subroutine pipeline,
or to 0 if the subroutine pipeline is just a short-through. The
pipeline will only stall if the stages in the subroutine pipeline never
commit.
¬R
The CallPipe can commit to whatever it wants. The userstage is suspended
waiting for the CallPipe to complete. A userstage starts at commit level
-1 and this user stage has done nothing to commit to level 0.
The main Pipe should be at commit level -1 also. The other stages in the
main Pipe will have started
at some commit level, done any initialization or verification necessary
and committed to level 0.
The only stage running in the main pipe is the userstage. The first
stage of the CallPipe has
issued a Peek or Read looking for data but no data is flowing from the
main pipe because it is
waiting for the userstage to commit to level 0.