ObjFW
|
A class which provides portable threads. More...
#include <ObjFW/ObjFW.h>
Instance Methods | |
(instancetype) | - initWithBlock: |
Initializes an already allocated thread with the specified block. | |
(nullable id) | - main |
The main routine of the thread. You need to reimplement this! | |
(void) | - handleTermination |
This routine is executed when the thread's main method has finished executing or terminate has been called. | |
(void) | - start |
Starts the thread. | |
(id) | - join |
Joins a thread. | |
Instance Methods inherited from OFObject | |
(instancetype) | - init |
Initializes an already allocated object. | |
(nullable OFMethodSignature *) | - methodSignatureForSelector: |
Returns the method signature for the specified selector. | |
(void) | - dealloc |
Deallocates the object. | |
(void) | - performSelector:afterDelay: |
Performs the specified selector after the specified delay. | |
(void) | - performSelector:withObject:afterDelay: |
Performs the specified selector with the specified object after the specified delay. | |
(void) | - performSelector:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. | |
(void) | - performSelector:withObject:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. | |
(void) | - performSelector:withObject:withObject:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. | |
(void) | - performSelector:onThread:waitUntilDone: |
Performs the specified selector on the specified thread. | |
(void) | - performSelector:onThread:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified object. | |
(void) | - performSelector:onThread:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. | |
(void) | - performSelectorOnMainThread:waitUntilDone: |
Performs the specified selector on the main thread. | |
(void) | - performSelectorOnMainThread:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified object. | |
(void) | - performSelectorOnMainThread:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. | |
(void) | - performSelectorOnMainThread:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. | |
(void) | - performSelectorOnMainThread:withObject:withObject:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. | |
(void) | - performSelector:onThread:afterDelay: |
Performs the specified selector on the specified thread after the specified delay. | |
(void) | - performSelector:onThread:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified object after the specified delay. | |
(void) | - performSelector:onThread:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. | |
(void) | - performSelector:onThread:withObject:withObject:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. | |
(nullable id) | - forwardingTargetForSelector: |
This method is called when resolveClassMethod: or resolveInstanceMethod: returned false. It should return a target to which the message should be forwarded. | |
(void) | - doesNotRecognizeSelector: |
Handles messages which are not understood by the receiver. | |
Instance Methods inherited from <OFObject> | |
(unsigned long) | - hash |
Returns a hash for the object. | |
(unsigned int) | - retainCount |
Returns the retain count. | |
(bool) | - isProxy |
Returns whether the object is a proxy object. | |
(bool) | - isKindOfClass: |
Returns a boolean whether the object is of the specified kind. | |
(bool) | - isMemberOfClass: |
Returns a boolean whether the object is a member of the specified class. | |
(bool) | - respondsToSelector: |
Returns a boolean whether the object responds to the specified selector. | |
(nullable IMP) | - methodForSelector: |
Returns the implementation for the specified selector. | |
(nullable id) | - performSelector: |
Performs the specified selector. | |
(nullable id) | - performSelector:withObject: |
Performs the specified selector with the specified object. | |
(nullable id) | - performSelector:withObject:withObject: |
Performs the specified selector with the specified objects. | |
(nullable id) | - performSelector:withObject:withObject:withObject: |
Performs the specified selector with the specified objects. | |
(nullable id) | - performSelector:withObject:withObject:withObject:withObject: |
Performs the specified selector with the specified objects. | |
(bool) | - isEqual: |
Checks two objects for equality. | |
(instancetype) | - retain |
Increases the retain count. | |
(void) | - release |
Decreases the retain count. | |
(instancetype) | - autorelease |
Adds the object to the topmost autorelease pool of the thread's autorelease pool stack. | |
(instancetype) | - self |
Returns the receiver. | |
(bool) | - allowsWeakReference |
Returns whether the object allows a weak reference. | |
(bool) | - retainWeakReference |
Retain a weak reference to this object. | |
Class Methods | |
(instancetype) | + thread |
Creates a new thread. | |
(instancetype) | + threadWithBlock: |
Creates a new thread with the specified block. | |
(nullable OFThread *) | + currentThread |
Returns the current thread. | |
(nullable OFThread *) | + mainThread |
Returns the main thread. | |
(bool) | + isMainThread |
Returns whether the current thread is the main thread. | |
(nullable OFMutableDictionary *) | + threadDictionary |
Returns a dictionary to store thread-specific data, meaning it returns a different dictionary for every thread. | |
(nullable OFDNSResolver *) | + DNSResolver |
Returns the DNS resolver for the current thread. | |
(void) | + sleepForTimeInterval: |
Suspends execution of the current thread for the specified time interval. | |
(void) | + sleepUntilDate: |
Suspends execution of the current thread until the specified date. | |
(void) | + yield |
Yields a processor voluntarily and moves the thread to the end of the queue for its priority. | |
(void) | + waitForVerticalBlank |
Waits for the vertical blank. | |
(void) | + terminate |
Terminates the current thread, letting it return nil . | |
(void) | + terminateWithObject: |
Terminates the current thread, letting it return the specified object. | |
(void) | + setName: |
Sets the name of the current thread. | |
(nullable OFString *) | + name |
Returns the name of the current thread. | |
Class Methods inherited from OFObject | |
(void) | + load |
A method which is called once when the class is loaded into the runtime. | |
(void) | + unload |
A method which is called when the class is unloaded from the runtime. | |
(void) | + initialize |
A method which is called the moment before the first call to the class is being made. | |
(instancetype) | + alloc |
Allocates memory for an instance of the class and sets up the memory pool for the object. | |
(Class) | + class |
Returns the class. | |
(OFString *) | + className |
Returns the name of the class as a string. | |
(bool) | + isSubclassOfClass: |
Returns a boolean whether the class is a subclass of the specified class. | |
(nullable Class) | + superclass |
Returns the superclass of the class. | |
(bool) | + instancesRespondToSelector: |
Checks whether instances of the class respond to a given selector. | |
(bool) | + conformsToProtocol: |
Checks whether the class conforms to a given protocol. | |
(nullable IMP) | + instanceMethodForSelector: |
Returns the implementation of the instance method for the specified selector. | |
(nullable OFMethodSignature *) | + instanceMethodSignatureForSelector: |
Returns the method signature of the instance method for the specified selector. | |
(OFString *) | + description |
Returns a description for the class, which is usually the class name. | |
(nullable IMP) | + replaceClassMethod:withMethodFromClass: |
Replaces a class method with a class method from another class. | |
(nullable IMP) | + replaceInstanceMethod:withMethodFromClass: |
Replaces an instance method with an instance method from another class. | |
(void) | + inheritMethodsFromClass: |
Adds all methods from the specified class to the class that is the receiver. | |
(bool) | + resolveClassMethod: |
Try to resolve the specified class method. | |
(bool) | + resolveInstanceMethod: |
Try to resolve the specified instance method. | |
(id) | + copy |
Returns the class. | |
Properties | |
OFString * | name |
The name for the thread to use when starting it. | |
OFThreadBlock | block |
The block to execute in the thread. | |
OFRunLoop * | runLoop |
The run loop for the thread. | |
float | priority |
The priority of the thread. | |
size_t | stackSize |
The stack size of the thread. | |
bool | supportsSockets |
Whether the thread supports sockets. | |
Properties inherited from OFObject | |
OFString * | className |
The name of the object's class. | |
OFString * | description |
A description for the object. | |
A class which provides portable threads.
To use it, you should create a new class derived from it and reimplement main.
+ (OFThread *) currentThread |
Returns the current thread.
+ (OFDNSResolver *) DNSResolver |
Returns the DNS resolver for the current thread.
Constructs the DNS resolver is there is none yet, unless currentThread is nil
, in which case it returns nil
.
- (void) handleTermination |
This routine is executed when the thread's main method has finished executing or terminate has been called.
[super handleTermination]
! - (instancetype) initWithBlock: | (OFThreadBlock) | block |
Initializes an already allocated thread with the specified block.
block | A block which is executed by the thread |
+ (bool) isMainThread |
Returns whether the current thread is the main thread.
- (id) join |
Joins a thread.
OFJoinThreadFailedException | Joining the thread failed |
- (id) main |
The main routine of the thread. You need to reimplement this!
+ (OFThread *) mainThread |
Returns the main thread.
+ (nullable OFString *) name |
Returns the name of the current thread.
+ (void) setName: | (nullable OFString *) | name |
Sets the name of the current thread.
Unlike the instance method, this can be used after the thread has been started.
name | The new name for the current thread. |
+ (void) sleepForTimeInterval: | (OFTimeInterval) | timeInterval |
Suspends execution of the current thread for the specified time interval.
timeInterval | The number of seconds to sleep |
+ (void) sleepUntilDate: | (OFDate *) | date |
Suspends execution of the current thread until the specified date.
date | The date to wait for |
- (void) start |
Starts the thread.
OFStartThreadFailedException | Starting the thread failed |
OFThreadStillRunningException | The thread is still running |
+ (void) terminateWithObject: | (nullable id) | object |
Terminates the current thread, letting it return the specified object.
object | The object which the terminated thread will return |
OFInvalidArgumentException | The method was called from the main thread |
+ (instancetype) thread |
Creates a new thread.
+ (OFMutableDictionary *) threadDictionary |
Returns a dictionary to store thread-specific data, meaning it returns a different dictionary for every thread.
+ (instancetype) threadWithBlock: | (OFThreadBlock) | block |
Creates a new thread with the specified block.
block | A block which is executed by the thread |
+ (void) waitForVerticalBlank |
Waits for the vertical blank.
|
readwriteatomic |
The name for the thread to use when starting it.
|
readwritenonatomicassign |
The priority of the thread.
This is a value between -1.0 (meaning lowest priority that still schedules) and +1.0 (meaning highest priority that still allows getting preempted) with normal priority being 0.0 (meaning being the same as the main thread).
OFThreadStillRunningException | The thread is already/still running and thus the priority cannot be changed |
|
readwritenonatomicassign |
The stack size of the thread.
OFThreadStillRunningException | The thread is already/still running and thus the stack size cannot be changed |
|
readwritenonatomicassign |
Whether the thread supports sockets.
Some operating systems such as AmigaOS need special per-thread initialization of sockets. If you intend to use sockets in the thread, set this property to true before starting the thread.
OFThreadStillRunningException | The thread is already/still running and thus the sockets support cannot be enabled/disabled |