Sha256: 85be06b57e18048ac8f2d699833639abc40ac48cff07efb5a3a06bcee885d739

Contents?: true

Size: 610 Bytes

Versions: 3

Compression:

Stored size: 610 Bytes

Contents

module Bowline
  module Desktop
    module Runtime
      def setup
        Desktop.on_tick(method(:poll))
      end
      module_function :setup
      
      def run_in_main_thread(method = nil, &block)
        procs << method||block
      end
      module_function :run_in_main_thread
      
      private      
        def poll
          while proc = procs.shift
            proc.call
          end
        end
        module_function :poll
      
        # TODO - thread safety, needs mutex
        def procs
          Thread.main[:procs] ||= []
        end
        module_function :procs 
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bowline-0.6.2 lib/bowline/desktop/runtime.rb
bowline-0.6.1 lib/bowline/desktop/runtime.rb
bowline-0.6.0 lib/bowline/desktop/runtime.rb