00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #import "OFObject.h"
00013 #import "OFList.h"
00014
00015 #import "threading.h"
00016
00020 @interface OFTLSKey: OFObject
00021 {
00022 @public
00023 of_tlskey_t key;
00024 @protected
00025 void (*destructor)(id);
00026 of_list_object_t *listobj;
00027 }
00028
00032 + tlsKey;
00033
00038 + tlsKeyWithDestructor: (void(*)(id))destructor;
00039
00040 + (void)callAllDestructors;
00041
00045 - init;
00046
00051 - initWithDestructor: (void(*)(id))destructor;
00052 @end
00053
00060 @interface OFThread: OFObject
00061 {
00062 id object;
00063 of_thread_t thread;
00064 BOOL running;
00065 @public
00066 id retval;
00067 }
00068
00073 + threadWithObject: (OFObject <OFCopying>*)obj;
00074
00085 + setObject: (OFObject*)obj
00086 forTLSKey: (OFTLSKey*)key;
00087
00093 + (id)objectForTLSKey: (OFTLSKey*)key;
00094
00099 - initWithObject: (OFObject <OFCopying>*)obj;
00100
00109 - (id)main;
00110
00116 - join;
00117 @end
00118
00122 @interface OFMutex: OFObject
00123 {
00124 of_mutex_t mutex;
00125 }
00126
00130 + mutex;
00131
00135 - lock;
00136
00143 - (BOOL)tryLock;
00144
00148 - unlock;
00149 @end