AsyncSourceAsyncStop

class Stop

Raised when a task is explicitly stopped.

Nested

Definitions

def initialize(message = "Task was stopped")

Create a new stop operation.

This is a compatibility method for Ruby versions before 3.5 where cause is not propagated correctly when using Fiber#raise

Signature

parameter message String | Hash

The error message or a hash containing the cause.

Implementation

def initialize(message = "Task was stopped")
	if message.is_a?(Hash)
		@cause = message[:cause]
		message = "Task was stopped"
	end
	
	super(message)
end

def cause

This is a compatibility method for Ruby versions before 3.5 where cause is not propagated correctly when using Fiber#raise, we explicitly capture the cause here.

Signature

returns Exception

The cause of the stop operation.

Implementation

def cause
	super || @cause
end

Discussion