Thread
A unit of execution in a process.
Thread.swift:28class Thread
A unit of execution in a process. Can run methods on Object
s simultaneously. The use of synchronization via Mutex
or Semaphore
is advised if working with shared objects.
To ensure proper cleanup without crashes or deadlocks, when a Thread
’s reference count reaches zero and it is therefore destroyed, the following conditions must be met:
It must not have any
Mutex
objects locked.It must not be waiting on any
Semaphore
objects.waitToFinish
should have been called on it.
Superclasses
class RefCounted
Base class for reference-counted objects.
Citizens in SwiftGodot
Conformances
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable
A type that can be hashed into a
Hasher
to produce an integer hash value.protocol Identifiable<ID>
A class of types whose instances hold the value of an entity with stable identity.
protocol VariantRepresentable
Types that conform to VariantRepresentable can be stored directly in
Variant
with no conversion. These include all of the Variant types from Godot (for exampleGString
,Rect
,Plane
), Godot objects (those that subclass SwiftGodot.Object) as well as the built-in Swift types UInt8, Int64 and Double.protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Types
Type members
static func setThreadSafetyChecksEnabled(Bool
) Sets whether the thread safety checks the engine normally performs in methods of certain classes (e.g.,
Node
) should happen on the current thread.class var godotClassName: StringName
Instance members
func getId(
) -> String Returns the current
Thread
’s ID, uniquely identifying it among all threads. If theThread
has not started running or ifwaitToFinish
has been called, this returns an empty string.func isAlive(
) -> Bool Returns
true
if thisThread
is currently running the provided function. This is useful for determining ifwaitToFinish
can be called without blocking the calling thread.func isStarted(
) -> Bool Returns
true
if thisThread
has been started. Once started, this will returntrue
until it is joined usingwaitToFinish
. For checking if aThread
is still executing its task, useisAlive
.func start(callable: Callable, priority: Thread.Priority
) -> GodotError Starts a new
Thread
that callscallable
.func waitToFinish(
) -> Variant Joins the
Thread
and waits for it to finish. Returns the output of theCallable
passed tostart(callable:priority:)
.