Module: Gtk
- Defined in:
- lib/baffle/gtk_queue.rb
Constant Summary collapse
- GTK_PENDING_BLOCKS =
[]
- GTK_PENDING_BLOCKS_LOCK =
Monitor.new
Class Method Summary collapse
Class Method Details
.main_with_queue(timeout = 100) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/baffle/gtk_queue.rb', line 17 def Gtk.main_with_queue(timeout=100) Gtk.timeout_add(timeout) do GTK_PENDING_BLOCKS_LOCK.synchronize do GTK_PENDING_BLOCKS.each { |block| block.call } GTK_PENDING_BLOCKS.clear end true end Gtk.main end |
.queue(&block) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/baffle/gtk_queue.rb', line 7 def Gtk.queue(&block) if Thread.current == Thread.main block.call else GTK_PENDING_BLOCKS_LOCK.synchronize do GTK_PENDING_BLOCKS << block end end end |