クラス: Mongo::DistinguishedSemasphere Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
build/ruby-Driver-v 2.19 /lib/mongo/distinguished_smapore.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

これは、タイムアウトに達して待機が終了するまでと、セカンダリのシグナルが発せられるために待機するを区別するセカンダリです。

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#初期化DistinguishedSeft の

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

DistinguishedSemaクラスタ の新しいインスタンスを返します。



24
25
26
27
28
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/distinguished_smajorb', 行24

デフォルト 初期化
  @lock = ミューテックス.新着情報
  @cv = ::条件変数.新着情報
  @queue = []
end

インスタンス メソッドの詳細

#ブロードキャスト=オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。



44
45
46
47
48
49
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/distinguished_smajorb', 行44

デフォルト ブロードキャスト
  @lock.同期 行う
    @queue.プッシュ(true)
    @cv.ブロードキャスト
  end
end

#signalObject

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。



51
52
53
54
55
56
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/distinguished_smajorb', 行51

デフォルト シグナル
  @lock.同期 行う
    @queue.プッシュ(true)
    @cv.シグナル
  end
end

#待機(タイムアウト = nil)= true| false

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

セマフォアがシグナルをタイムアウトするまで待機します。 セカンダリがシグナル提供されない場合、 はタイムアウト秒後に返します。

次の値を返します。

  • true | false

    セカンダリがシグナルを発した場合は true、タイムアウトに達した場合は false。



35
36
37
38
39
40
41
42
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/distinguished_smajorb', 行35

デフォルト 待機する(タイムアウト = nil)
  @lock.同期 行う
    @cv.待機する(@lock, タイムアウト)
    (!@queue.空の場合).タップ 行う
      @queue.クリア
    end
  end
end