129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
return self;
}
- initWithDestructor: (void(*)(id))destructor
{
self = [super init];
/* FIXME: Call destructor on Win32 */
if (!of_tlskey_new(&key, destructor)) {
Class c = isa;
[super dealloc];
@throw [OFInitializationFailedException newWithClass: c];
}
return self;
}
/* FIXME: Add dealloc! */
@end
@implementation OFMutex
+ mutex
{
return [[[self alloc] init] autorelease];
}
|
<
>
>
>
>
|
>
|
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
return self;
}
- initWithDestructor: (void(*)(id))destructor
{
self = [super init];
if (!of_tlskey_new(&key, destructor)) {
Class c = isa;
[super dealloc];
@throw [OFInitializationFailedException newWithClass: c];
}
return self;
}
- (void)dealloc
{
of_tlskey_free(key);
[super dealloc];
}
@end
@implementation OFMutex
+ mutex
{
return [[[self alloc] init] autorelease];
}
|