abstract class Crystal::EventLoop
Included Modules
Defined in:
crystal/system/event_loop.cr:1crystal/system/event_loop.cr:60
crystal/system/event_loop/file_descriptor.cr
crystal/system/event_loop/socket.cr
Constructors
-
.create : self
Creates an event loop instance
- .current : self
Instance Method Summary
-
#create_resume_event(fiber : Fiber) : Event
Create a new resume event for a fiber.
-
#create_timeout_event(fiber : Fiber) : Event
Creates a timeout_event.
-
#interrupt : Nil
Tells a blocking run loop to no longer wait for events to activate.
-
#run(blocking : Bool) : Bool
Runs the loop.
Instance methods inherited from module Crystal::EventLoop::Socket
accept(socket : ::Socket) : ::Socket::Handle | Nil
accept,
close(socket : ::Socket) : Nil
close,
connect(socket : ::Socket, address : ::Socket::Addrinfo | ::Socket::Address, timeout : Time::Span | Nil) : IO::Error | Nil
connect,
read(socket : ::Socket, slice : Bytes) : Int32
read,
receive_from(socket : ::Socket, slice : Bytes) : Tuple(Int32, ::Socket::Address)
receive_from,
send_to(socket : ::Socket, slice : Bytes, address : ::Socket::Address) : Int32
send_to,
write(socket : ::Socket, slice : Bytes) : Int32
write
Instance methods inherited from module Crystal::EventLoop::FileDescriptor
close(file_descriptor : Crystal::System::FileDescriptor) : Nil
close,
read(file_descriptor : Crystal::System::FileDescriptor, slice : Bytes) : Int32
read,
write(file_descriptor : Crystal::System::FileDescriptor, slice : Bytes) : Int32
write
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
Instance Method Detail
Create a new resume event for a fiber.
Tells a blocking run loop to no longer wait for events to activate. It may for example enqueue a NOOP event with an immediate (or past) timeout. Having activated an event, the loop shall return, allowing the blocked thread to continue.
Should be a NOOP when the loop isn't running or is running in a nonblocking mode.
NOTE we assume that multiple threads won't run the event loop at the same time in parallel, but this assumption may change in the future!
Runs the loop.
Returns immediately if events are activable. Set blocking
to false to
return immediately if there are no activable events; set it to true to wait
for activable events, which will block the current thread until then.
Returns true
on normal returns (e.g. has activated events, has pending
events but blocking was false) and false
when there are no registered
events.