Timestep and objections

I still do not fully get this matching with what I see. E.g. if my test’s run_phase contains only:

    $display("start of test");
    for(int i=0;i<10000;i++) begin
        #0;
    end
    $display("after 10000 x #0 (%0t)",$realtime);
    #1ns
    $display("after #1ns (%0t)",$realtime);

returns:

start of test

after 10000 x #0 (0.0 ns)

Hence the phase doesn’t end after the first #0, but only when time needs to be advanced.

EDIT: raising and dropping an objection prior to the above code has the same effect.