lib/opal/builder_scheduler.rb



# frozen_string_literal: true

require 'opal/os' unless RUBY_ENGINE == 'opal'

module Opal
  class BuilderScheduler
    def initialize(builder)
      @builder = builder
    end

    attr_accessor :builder
  end

  singleton_class.attr_accessor :builder_scheduler

  if RUBY_ENGINE != 'opal'
    # Windows has a faulty `fork`.
    if OS.windows? || ENV['OPAL_PREFORK_DISABLE']
      require 'opal/builder_scheduler/sequential'
      Opal.builder_scheduler = BuilderScheduler::Sequential
    else
      require 'opal/builder_scheduler/prefork'
      Opal.builder_scheduler = BuilderScheduler::Prefork
    end
  else
    require 'opal/builder_scheduler/sequential'
    Opal.builder_scheduler = BuilderScheduler::Sequential
  end
end