64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
{
if (self != [OFThread class])
return;
if (!of_tlskey_new(&thread_self))
@throw [OFInitializationFailedException newWithClass: self];
}
+ threadWithObject: (id)obj
{
return [[[self alloc] initWithObject: obj] autorelease];
}
+ (void)setObject: (id)obj
|
>
>
>
>
>
|
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
{
if (self != [OFThread class])
return;
if (!of_tlskey_new(&thread_self))
@throw [OFInitializationFailedException newWithClass: self];
}
+ thread
{
return [[[self alloc] init] autorelease];
}
+ threadWithObject: (id)obj
{
return [[[self alloc] initWithObject: obj] autorelease];
}
+ (void)setObject: (id)obj
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
[OFAutoreleasePool releaseAll];
[thread release];
of_thread_exit();
}
- init
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithObject: (id)obj
{
self = [super init];
@try {
object = [obj retain];
} @catch (id e) {
|
<
<
<
<
<
<
<
<
|
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
[OFAutoreleasePool releaseAll];
[thread release];
of_thread_exit();
}
- initWithObject: (id)obj
{
self = [super init];
@try {
object = [obj retain];
} @catch (id e) {
|