class Gtk::Lock

Gtk::Lock Ruby::Gnome2の排他制御

メインスレッド以外でロックしようとするとエラーを発生させる。 Gtkを使うところで、メインスレッドではない疑いがある箇所は必ずGtk::Lockを使う。

Public Class Methods

lock() click to toggle source

メインスレッド以外でこの関数を呼ぶと例外を発生させる。

# File core/mui/gtk_extension.rb, line 163
def self.lock
  raise 'Gtk lock can mainthread only' if Thread.main != Thread.current
end
synchronize() { || ... } click to toggle source

ブロック実行前に lock し、実行後に unlock する。 ブロックの実行結果を返す。

# File core/mui/gtk_extension.rb, line 153
def self.synchronize
  begin
    lock
    yield
  ensure
    unlock
  end
end
unlock() click to toggle source
# File core/mui/gtk_extension.rb, line 167
def self.unlock
end