Multiple clocking block event question

In reply to dave_59:

The LRM section 14.13 says

Upon processing its specified clocking event, a clocking block shall update its sampled values before triggering the event associated with the clocking block name. This event shall be triggered in the Observed region.

Seems this is small but important difference between @cb and its associated @(posedge clk).

when simulator sees posedge clk event in the active region, it schedule trigger of clocking block events into the observed event queue. And when simulator executes events from the observed event queue, it copy the events into the active region and execute them from there.

while (any region in [Active … Post-Observed] is nonempty) {
execute_region (Active);
R = first nonempty region in [Active … Post-Observed];
if (R is nonempty)
move events in R to the Active region;
}

I have a fundamental question about this reference algorithm.

Is event from the active region executed in place in the active event region OR the events get copied out of the active region to a temporary buffer essentially making the active region empty before the event execution? Because event triggering might resume more suspended processes which would be put into active region. I wonder evaluation(execution) of these processes are in the next round of active region scheduling or right in the same round of event triggering.