nwait(),
wait_until(...), watching(...)
nWaiting and watching
provides hw reactivity
nWaiting refers to a
blocking action while waiting for an event to
happen, whereas watching refers to a
non-blocking action
nwatching enables preemption and can be done globally or locally