In reply to dhserfer:
1.) duration of the inner loop?
Inner loops are expected to complete based on the handshake from the DUT, until then they will just have to wait/elapse the clock within their agent drivers.
2.) Do you intend to terminate the inner loops at the end of some duration? Or will they run to completion?
No, they are expected to complete as said in (1)
3.) In your last sentence you stated that you wanted to wait for the first iteration of the outer loop to complete before beginning the next iteration. If that is what you want, why do you need an inner and outer loop at all? Just fork the outer and inner loops off with a fork/join.
The reason for having two loops is, I have the stimulus such as a “frame” which is divided into blocks. The outer loop for example could be number of frames and the inner is number of blocks. My requirement is that I need to complete all the blocks in a frame, then wait for the other frame related threads to complete before starting next frame.