Sha256: 39cf6557d59c0a17f64fda33595e8a9e630f94e40116dc161160325259284642

Contents?: true

Size: 661 Bytes

Versions: 2

Compression:

Stored size: 661 Bytes

Contents

require_relative 'pf2/pf2'
require_relative 'pf2/version'

module Pf2
  class Error < StandardError; end

  def self.default_scheduler_class
    # SignalScheduler is Linux-only. Use TimerThreadScheduler on other platforms.
    if defined?(SignalScheduler)
      SignalScheduler
    else
      TimerThreadScheduler
    end
  end

  def self.start(...)
    @@default_scheduler = default_scheduler_class.new(...)
    @@default_scheduler.start
  end

  def self.stop(...)
    @@default_scheduler.stop(...)
  end

  def self.profile(&block)
    raise ArgumentError, "block required" unless block_given?
    start([Thread.current], true)
    yield
    stop
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pf2-0.4.0 lib/pf2.rb
pf2-0.3.0 lib/pf2.rb