Fork statement design, exit after any 2 out of 3 tasks are completed

In reply to Varun Marichi:

For this there is no direct way you can use something like this:

bit a,b,c;
  fork
    begin
     T1;
     a = 1;
     wait( b || c);
    end
    begin
     T2;
     b = 1;
     wait(a || c);
    end
    begin
     T3;
     c = 1;
     wait(a || b);
    end
  join_any