is a condition notification device which can be in one of two states: lowered
(the initial state) or raised
The flag can be raised at any time; raising a raised flag does nothing. Lowering a flag if it has not been raised yet will wait for another thread to raise the flag.
Essentially, a flag can be thought of as a counting semaphore where the count never goes above one.
flag? ( object -- ? )
Waiting for a flag to be raised:
raise-flag ( flag -- )
wait-for-flag ( flag -- )
lower-flag ( flag -- )