The examples on this page have:
// Grab call which blocks until grab has been granted
m_sequencer.grab(this);
if(m_sequencer.is_grabbed()) begin
if(m_sequencer.current_grabber() != this) begin
uvm_report_info("grab_seq", "Grab sequence waiting for current grab or lock to complete");
end
end
If grab() blocks until the grab has been granted, then is it ever possible for the uvm_report_info() call to be executed? Because presumably if grab() has returned then this is always the current_grabber?