类:Mongo::DistinguishingSemaphore Private
- 继承:
-
对象
- 对象
- Mongo::DistinguishingSemaphore
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/distinguishing_semaphore.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
这是一个信号量,用于区分由于达到超时而结束的等待和由于收到信号量而结束的等待。
实例方法摘要折叠
- #广播⇒ 对象 private
-
#初始化="DistinguishingSemaphore"
构造函数
private
DistinguishingSemaphore 的新实例。
- #signal ⇒ Object private
-
# wait (timeout = nil) ⇒ true | false
private
在 timeout 秒内等待信号量收到信号。
构造函数详情
#初始化=" DistinguishingSemaphore "
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 DistinguishingSemaphore 的新实例。
24 25 26 27 28 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/distinguishing_semaphore.rb', 第24行 def 初始化 锁 = 互斥锁.new @cv = ::ConditionVariable.new @queue = [] end |
实例方法详细信息
#广播⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
44 45 46 47 48 49 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/distinguishing_semaphore.rb', 第44行 def 广播 锁.同步 do @queue.推动(true) @cv.广播 end end |
#signal ⇒ Object
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
51 52 53 54 55 56 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/distinguishing_semaphore.rb', 第51行 def 信号 锁.同步 do @queue.推动(true) @cv.信号 end end |
# wait (timeout = nil) ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
在 timeout 秒内等待信号量收到信号。 如果信号量未收到信号,则在超时秒数后返回。
35 36 37 38 39 40 41 42 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/distinguishing_semaphore.rb', 第35行 def wait(超时 = nil) 锁.同步 do @cv.wait(锁, 超时) (!@queue.空?).点击 do @queue.清除 end end end |