Sha256: ed5e385f3d6c9aa8ff2c19906377bcc0e44e50e93fa9b641a7b78fd2fb99ad20

Contents?: true

Size: 1.27 KB

Versions: 19

Compression:

Stored size: 1.27 KB

Contents

require 'fileutils'

require "core/reentry_helpers"
require "core/controller"
require "core/gui"
require "core/has_spi"
require "core/interface"
require "core/model"
require "core/observable"
require "core/observable_struct"
require "core/persistent_cache"
require "core/plugin"
require "core/plugin/storage"

begin
  require 'java'
  require "core/task"
  require "core/task_queue"
  require "core/resource"
rescue LoadError => e
end

module Redcar
  def self.tmp_dir
    path = File.join(Redcar.user_dir, "tmp")
    unless File.exists?(path)
      FileUtils.mkdir(path)
    end
    path
  end
    
  class Core
    def self.loaded
      unless File.exist?(Redcar.user_dir)
        FileUtils.mkdir(Redcar.user_dir)
      end
      PersistentCache.storage_dir = File.join(Redcar.user_dir, "cache")
    end
  end
  
  class TimeoutError < StandardError; end

  def self.timeout(limit)
    x = Thread.current
    result = nil
    y = Thread.new do
      begin
        result = yield
      rescue Object => e
        x.raise e
      end
    end
    s = Time.now
    loop do
      if not y.alive?
        break
      elsif Time.now - s > limit
        y.kill
        raise Redcar::TimeoutError, "timed out after #{Time.now - s}s"
        break
      end
      sleep 0.1
    end
    result
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
redcar-0.13 plugins/core/lib/core.rb
redcar-dev-0.13.5dev plugins/core/lib/core.rb
redcar-dev-0.13.4dev plugins/core/lib/core.rb
redcar-dev-0.13.3dev plugins/core/lib/core.rb
redcar-dev-0.13.2dev plugins/core/lib/core.rb
redcar-dev-0.13.1dev plugins/core/lib/core.rb
redcar-0.12.1 plugins/core/lib/core.rb
redcar-dev-0.13.0dev plugins/core/lib/core.rb
redcar-0.12 plugins/core/lib/core.rb
redcar-dev-0.12.27dev plugins/core/lib/core.rb
redcar-dev-0.12.26dev plugins/core/lib/core.rb
redcar-dev-0.12.25dev plugins/core/lib/core.rb
redcar-dev-0.12.24dev plugins/core/lib/core.rb
redcar-dev-0.12.23dev plugins/core/lib/core.rb
redcar-dev-0.12.22dev plugins/core/lib/core.rb
redcar-dev-0.12.21dev plugins/core/lib/core.rb
redcar-dev-0.12.20dev plugins/core/lib/core.rb
redcar-dev-0.12.19dev plugins/core/lib/core.rb
redcar-dev-0.12.18dev plugins/core/lib/core.rb