@@ -72,30 +72,30 @@ + threadWithObject: (id)obj { return [[[self alloc] initWithObject: obj] autorelease]; } -+ (id)setObject: (id)obj - forTLSKey: (OFTLSKey*)key ++ (void)setObject: (id)obj + forTLSKey: (OFTLSKey*)key { id old = of_tlskey_get(key->key); if (!of_tlskey_set(key->key, [obj retain])) @throw [OFInvalidArgumentException newWithClass: self selector: _cmd]; - return [old autorelease]; + [old release]; } + (id)objectForTLSKey: (OFTLSKey*)key { - return of_tlskey_get(key->key); + return [[of_tlskey_get(key->key) retain] autorelease]; } + (OFThread*)currentThread { - return of_tlskey_get(thread_self); + return [[of_tlskey_get(thread_self) retain] autorelease]; } + (void)sleepForTimeInterval: (int64_t)sec { if (sec < 0)