$protect_gtk_pending_calls = Mutex.new
$gtk_pending_calls = []
Gtk.timeout_add(100) {
- $protect_gtk_pending_calls.synchronize {
- $gtk_pending_calls.each { |c| c.call }
- $gtk_pending_calls = []
- }
+ empty = nil
+ begin
+ $protect_gtk_pending_calls.synchronize {
+ if ! $gtk_pending_calls.empty?
+ $gtk_pending_calls.pop.call
+ end
+ empty = $gtk_pending_calls.empty?
+ }
+ end while ! empty
true
}