class Gio::ThreadedSocketService
Overview
A GThreadedSocketService
is a simple subclass of Gio::SocketService
that handles incoming connections by creating a worker thread and
dispatching the connection to it by emitting the
[signal@Gio.ThreadedSocketService::run signal] in the new thread.
The signal handler may perform blocking I/O and need not return until the connection is closed.
The service is implemented using a thread pool, so there is a
limited amount of threads available to serve incoming requests.
The service automatically stops the Gio::SocketService
from accepting
new connections when all threads are busy.
As with Gio::SocketService
, you may connect to
Gio::ThreadedSocketService::#run
, or subclass and override the default
handler.
Defined in:
lib/gi-crystal/src/auto/gio-2.0/threaded_socket_service.crConstructors
-
.new(max_threads : Int32) : self
Creates a new #GThreadedSocketService with no listeners.
-
.new
Initialize a new
ThreadedSocketService
. - .new(*, active : Bool | Nil = nil, listen_backlog : Int32 | Nil = nil, max_threads : Int32 | Nil = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#==(other : self)
Returns
true
if this reference is the same as other. -
#hash(hasher)
See
Object#hash(hasher)
- #max_threads : Int32
- #max_threads=(value : Int32) : Int32
- #run_signal
Instance methods inherited from class Gio::SocketService
==(other : self)
==,
active=(value : Bool) : Bool
active=,
active? : Bool
active?,
hash(hasher)
hash,
incoming_signal
incoming_signal,
is_active? : Bool
is_active?,
start : Nil
start,
stop : Nil
stop
Constructor methods inherited from class Gio::SocketService
new : selfnew(*, active : Bool | Nil = nil, listen_backlog : Int32 | Nil = nil) new
Class methods inherited from class Gio::SocketService
g_type : UInt64
g_type
Instance methods inherited from class Gio::SocketListener
==(other : self)
==,
accept(cancellable : Gio::Cancellable | Nil) : Gio::SocketConnection
accept,
accept_async(cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil
accept_async,
accept_finish(result : Gio::AsyncResult) : Gio::SocketConnection
accept_finish,
accept_socket(cancellable : Gio::Cancellable | Nil) : Gio::Socket
accept_socket,
accept_socket_async(cancellable : Gio::Cancellable | Nil, &callback : Gio::AsyncReadyCallback) : Nil
accept_socket_async,
accept_socket_finish(result : Gio::AsyncResult) : Gio::Socket
accept_socket_finish,
add_address(address : Gio::SocketAddress, type : Gio::SocketType, protocol : Gio::SocketProtocol, source_object : GObject::Object | Nil) : Bool
add_address,
add_any_inet_port(source_object : GObject::Object | Nil) : UInt16
add_any_inet_port,
add_inet_port(port : UInt16, source_object : GObject::Object | Nil) : Bool
add_inet_port,
add_socket(socket : Gio::Socket, source_object : GObject::Object | Nil) : Bool
add_socket,
backlog=(listen_backlog : Int32) : Nil
backlog=,
close : Nil
close,
event_signal
event_signal,
hash(hasher)
hash,
listen_backlog : Int32
listen_backlog,
listen_backlog=(value : Int32) : Int32
listen_backlog=
Constructor methods inherited from class Gio::SocketListener
new : selfnew(*, listen_backlog : Int32 | Nil = nil) new
Class methods inherited from class Gio::SocketListener
g_type : UInt64
g_type
Instance methods inherited from class GObject::Object
==(other : self)
==,
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void) | Nil
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
hash(hasher)
hash,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void) | Nil
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void) | Nil) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void) | Nil
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void) | Nil
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
cast?(obj : GObject::Object) : self | Nil
cast?,
compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Macros inherited from class GObject::Object
previous_vfunc(*args)
previous_vfunc,
previous_vfunc!(*args)
previous_vfunc!,
signal(signature)
signal
Constructor Detail
Creates a new #GThreadedSocketService with no listeners. Listeners must be added with one of the #GSocketListener "add" methods.
Class Method Detail
Instance Method Detail
Returns true
if this reference is the same as other. Invokes same?
.