Wait statement inside a driver

In reply to dave_59:

Shouldn’t my logic be the below instead since I need to wait for trigger to be set before driving my transaction


@(vif.driver_cb iff vif.driver_cb.trigger == 1)

vif.driver_cb.data <= trans.data;

For my understanding, what exactly does “@(vif.driver_cb iff vif.driver_cb.trigger == 1” translate to? Am I right when I say “Keep executing @(vif.driver_cb) until vif.driver_cb.trigger equals 1”?

Does this also mean that in the case of trigger being equal to 1 when the code is hit, the execution skips the blocking statement @(vif.driver_cb)?