Pattern: Boolean Flag
Problem: An agent should consider a flag presence.
Solution: The solution is to set a timeout for a read or take operation, where the timeout value specifies how often a flag appearance should be checked, and if the flag is presented to perform the flag specific operation.
The Agent Life Cycle pattern is, of course, used too.
(life cycle and boolean flag patterns)
loop do
begin
read or take n-tuple with timeout t1
rescue Rinda::RequestExpiredError
begin
read the flag n-tuple with timeout t2
perform a flag specific operation
rescue Rinda::RequestExpiredError
perform an operation when the flag is not set
end
next # repeat the loop
end
process n-tuple end