one clock cycle of your clock; in fact concurrent assertions are always based on a clock:
16.2 LRM:
Concurrent assertions are based on clock semantics and use sampled values of their expressions
16.5 Concurrent assertions overview
Concurrent assertions describe behavior that spans over time. Unlike immediate assertions, the evaluation
model is based on a clock so that a concurrent assertion is evaluated only at the occurrence of a clock tick.
It has to have a clock somewhere; either you explicitly describe it as you have done, or it will implicitly pull it from a default clocking block (if you have one)