In reply to perumallatarun:
if you have some task instead of following timestamp print, then test behavior is different.
// $display("time = %2d Outside the main fork ",$time );
checking_method(); // for instance
Basically, the timing you exit fork-join block is totally different, so I think this 2 cases are different.