在 Lock::Async 中§
请参阅方法 unlock的上下文中的主要文档 in context
method unlock(Lock::Async: --> Nil)
释放锁。如果有任何未完成的 lock Promise,队列头部的那个将被保留,并且可能在线程池上安排代码(因此调用 unlock 的成本仅限于安排另一段想要获取锁的代码所需的工作,而不是执行该代码)。
my = Lock::Async.new;await .lock;.unlock;
最好使用 protect 而不是显式调用 lock 和 unlock。但是,如果希望分别使用这些方法,最好使用 LEAVE 块来确保可靠地调用 unlock。未能 unlock 将意味着没有人能够再次 lock 此特定 Lock::Async 实例。
my = Lock::Async.new;
在 Lock 中§
请参阅方法 unlock的上下文中的主要文档 in context
method unlock(Lock:)
释放锁。
my = Lock.new;.lock;.unlock;
务必确保始终释放 Lock,即使抛出异常也是如此。确保这一点的最安全方法是使用 protect 方法,而不是显式调用 lock 和 unlock。如果没有,请使用 LEAVE 移相器。
my = Lock.new;
在 IO::CatHandle 中§
请参阅方法 unlock的上下文中的主要文档 in context
method unlock(IO::CatHandle:)
与 IO::Handle.unlock 相同。如果 源句柄队列已耗尽,则返回 Nil。
仅解锁当前活动的源句柄。 .on-switch Callable 可用于在 CatHandle 处理句柄时方便地锁定/解锁句柄。
在 IO::Handle 中§
请参阅方法 unlock的上下文中的主要文档 in context
method unlock(IO::Handle: --> True)
从文件句柄中删除 lock。如果不可能,它将返回 True 或引发异常。