Sha256: 1089c9d4fbf3adc251584763e64ad88bf2613890e093de6e1d86b7c6289a0d1f

Contents?: true

Size: 715 Bytes

Versions: 7

Compression:

Stored size: 715 Bytes

Contents

# frozen_string_literal: true

# Released under the MIT License.
# Copyright, 2017-2024, by Samuel Williams.
# Copyright, 2017, by Kent Gruber.
# Copyright, 2018, by Sokolov Yura.

require_relative 'scheduler'

module Async
	# A wrapper around the the scheduler which binds it to the current thread automatically.
	class Reactor < Scheduler
		# @deprecated Replaced by {Kernel::Async}.
		def self.run(...)
			Async(...)
		end
		
		# Initialize the reactor and assign it to the current Fiber scheduler.
		def initialize(...)
			super
			
			Fiber.set_scheduler(self)
		end
		
		# Close the reactor and remove it from the current Fiber scheduler.
		def scheduler_close
			self.close
		end
		
		public :sleep
	end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
async-2.17.0 lib/async/reactor.rb
async-2.16.1 lib/async/reactor.rb
async-2.16.0 lib/async/reactor.rb
async-2.15.3 lib/async/reactor.rb
async-2.15.2 lib/async/reactor.rb
async-2.15.1 lib/async/reactor.rb
async-2.15.0 lib/async/reactor.rb