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