Disable fork join when one of the tasks complete

In reply to saritr:
you should use process in your case or labeled , code is not tested .


virtual task run_phase (uvm_phase phase);
     process thread ;
      forever begin
                fork 
                    monitor_cycle_count();
                    forever begin
                       mon_trx = axi_transaction::type_id::create("mon_trx");
                       fork
                                  thread = process::self();
                                  monitor_write();
                                  monitor_read();                 
                       join_any
                       thread.kill();
                    end
                join
      end
  endtask: run_phase