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
00066 @public
00067 id retval;
00068 }
00069
00074 + threadWithObject: (OFObject <OFCopying>*)obj;
00075
00086 + setObject: (OFObject*)obj
00087 forTLSKey: (OFTLSKey*)key;
00088
00094 + (id)objectForTLSKey: (OFTLSKey*)key;
00095
00100 - initWithObject: (OFObject <OFCopying>*)obj;
00101
00110 - (id)main;
00111
00117 - join;
00118 @end
00119
00123 @interface OFMutex: OFObject
00124 {
00125 of_mutex_t mutex;
00126 }
00127
00131 + mutex;
00132
00136 - lock;
00137
00144 - (BOOL)tryLock;
00145
00149 - unlock;
00150 @end