Fiber::ExecutionContext::SingleThreaded - Crystal 1.16.3

# class Fiber::ExecutionContext::SingleThreaded

- Fiber::ExecutionContext::SingleThreaded
- Reference
- Object

##
Overview

A single-threaded execution context which owns a single thread. It's fully concurrent with limited parallelism.

Concurrency is restricted to a single thread. Fibers in the same context will never run in parallel to each other but they may still run in parallel to fibers running in other contexts (i.e. in another thread).

Fibers can use simpler and faster synchronization primitives between themselves (no atomics, no thread safety). Communication with fibers in other contexts requires thread-safe primitives.

A blocking fiber blocks the entire thread and all other fibers in the context.

##
Included Modules

- Fiber::ExecutionContext
- Fiber::ExecutionContext::Scheduler

##
Defined in:

fiber/execution_context/single_threaded.cr

##
Constructors

- .new(name : String) : self

##
Instance Method Summary

- #inspect(io : IO) : Nil

  Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.

- #name : String
- #status : String

  Returns the current status of the scheduler.

- #to_s(io : IO) : Nil

  Appends a short String representation of this object which includes its class name and its object address.

### Instance methods inherited from module `Fiber::ExecutionContext::Scheduler`

spawn(*, name : String | Nil = nil, &block : -> ) : Fiber
spawn(*, name : String | Nil = nil, same_thread : Bool, &) : Fiber spawn, status : String status

### Constructor methods inherited from module `Fiber::ExecutionContext::Scheduler`

current : Scheduler current

### Instance methods inherited from module `Fiber::ExecutionContext`

spawn(*, name : String | Nil = nil, &block : -> ) : Fiber spawn

### Constructor methods inherited from module `Fiber::ExecutionContext`

current : ExecutionContext current, default : ExecutionContext default

### Class methods inherited from module `Fiber::ExecutionContext`

default_workers_count : Int32 default_workers_count, each(&) : Nil each

### Instance methods inherited from class `Reference`

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s

### Constructor methods inherited from class `Reference`

new new, unsafe_construct(address : Pointer, *args, **opts) : self unsafe_construct

### Class methods inherited from class `Reference`

pre_initialize(address : Pointer) pre_initialize

### Instance methods inherited from class `Object`

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

### Class methods inherited from class `Object`

from_json(string_or_io, root : String)
from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml

### Macros inherited from class `Object`

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

##
Constructor Detail

def self.new(name : String) : self #

##
Instance Method Detail

def inspect(io : IO) : Nil #
Description copied from class Reference

Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.

    class Person
      def initialize(@name : String, @age : Int32)
      end
    end

    Person.new("John", 32).inspect # => #<Person:0x10fd31f20 @name="John", @age=32>

def name : String #
def status : String #
Description copied from module Fiber::ExecutionContext::Scheduler

Returns the current status of the scheduler. For example `"running"`, `"event-loop"` or `"parked"`.

def to_s(io : IO) : Nil #
Description copied from class Reference

Appends a short String representation of this object which includes its class name and its object address.

    class Person
      def initialize(@name : String, @age : Int32)
      end
    end

    Person.new("John", 32).to_s # => #<Person:0x10a199f20>