method with-lock-hidden-from-recursion-check
Documentation for method with-lock-hidden-from-recursion-check
assembled from the following types:
class Lock::Async
From Lock::Async
(Lock::Async) method with-lock-hidden-from-recursion-check
Defined as:
method with-lock-hidden-from-recursion-check(&code)
Temporarily resets the Lock::Async recursion list so that it no longer includes the lock this method is called on and runs the given &code
immediately if the call to the method occurred in a caller chain where protect-or-queue-on-recursion has already been called and the lock has been placed on the recursion list.
my Lock::Async $lock .= new; my Int $count = 0; $lock.protect-or-queue-on-recursion({ my Int $count = 0; # Runs instantly. $lock.with-lock-hidden-from-recursion-check({ $count++; }); # Runs after the outer caller's protect-or-queue-on-recursion call has # finished running. $lock.protect-or-queue-on-recursion({ $count++; }).then({ say $count; # OUTPUT: 2 }); say $count; # OUTPUT: 1 });