Hello!
2015-01-15 17:00 GMT-08:00 yancl:
> 多个coroutine通过resty-lock同步数据没有问题,不过同一个coroutine通过resty-lock很难把自己block起来,并且通过其他coroutine来唤醒.
> 因为同一个coroutine
> block自己需要lock两次同一个key,但是unlock是对象级别的,其他的coroutine很难知道这个coroutine是什么,所以也就没有办法唤醒了.
>
luck 和 unlock 都不是对象级别的。resty.lock 对象只是一个代理(proxy),锁本身其实位于共享内存字典中,因此不同的
resty.lock 对象可以操作同一个锁。只要是同一个 key,在一个 worker 进程中 unlock 就可以促使另一个 worker
进程中的 lock 返回。
Regards,
-agentzh