Fork join threads in a sequence body

In reply to sdesai:

One thing your simplified code does not show is construction of the sequences. Every sequence you start needs to be newly constructed. This especially true if ob_agent_num gets repeated.

You probably should have ob_seq be an array of uvm_object_wrapper objects instead of the actual sequence objects.

               begin 
                  your_sequence_base seq;
		  a = ....;
		  b = ....;
		  ob_agent_num = $urandom_range(0,7);
                  $cast(seq,ob_seq[ob_agent_num].create_object(...);  
		  seq.randomize;
		  seq.start(p_sequencer.ob_agent_sequencer[ob_agent_num]); 		  
	       end

See this link for more examples of uvm_object_wrapper.