abstract class Concurrent::Stream::SendRecv(B, V, E, SC)

Overview

#map, #select, #run and #tee run in a fiber pool. #batch runs in a single fiber All other methods "join" in the calling fiber.

Exceptions are raised in #each when joined.

TODO better error handling. B=block V=value E=accumulated_error SC=scope

Included Modules

Direct Known Subclasses

Defined in:

concurrent/stream.cr

Constructors

Instance Method Summary

Instance methods inherited from class Concurrent::Stream::Base

close : Nil close

Constructor methods inherited from class Concurrent::Stream::Base

new(*, fibers : Int32, parent : Concurrent::Stream::Base | Nil) new

Constructor Detail

def self.new(*, fibers : Int32, dst_vch : Channel(V), dst_ech : Channel(Tuple(Exception, E)) | Nil = nil, parent) #

[View source]

Instance Method Detail

def batch(size : Int32, *, flush_interval : Float | Nil = nil, flush_empty : Bool = false) #

Groups results in to chunks up to the given size. Runs in a single fiber. Multiple fibers would delay further stream processing.


[View source]
def close : Nil #

[View source]
def errors(*, fibers : Int32 | Nil = nil, &block : Exception, E -> Nil) #

[View source]
def map(*, fibers : Int32 | Nil = nil, &block : V -> U) forall U #

Parallel map. &block is evaluated in a fiber pool.


[View source]
def run(*, fibers : Int32 | Nil = nil, &block : V -> _) #

Parallel run. &block is evaluated in a fiber pool. Further processing is not possible except for #wait.


[View source]
def scope(&block : -> U) forall U #

Further processing is evaluated within the scope of the returned object.


[View source]
def select(*, fibers : Int32 | Nil = nil, &block : V -> Bool) #

Parallel select. &block is evaluated in a fiber pool.


[View source]
def serial #

[View source]
def tee(*, fibers : Int32 | Nil = nil, &block : V -> _) #

Parallel tee. &block is evaluated in a fiber pool. The original message is passed to the next Stream.


[View source]
def to_a(*args, **options) #

[View source]
def to_a(*args, **options, &) #

[View source]