Overview
| Comment: | Fix missing retain + autorelease in TLS-object handling. |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
e9e263d62acab7bcf582b8d3cf215ff8 |
| User & Date: | js on 2011-01-11 22:43:35 |
| Other Links: | manifest | tags |
Context
|
2011-01-11
| ||
| 22:45 | Rename tlsKey -> TLSKey. Acronyms are always uppercase! (check-in: eb374bb382 user: js tags: trunk) | |
| 22:43 | Fix missing retain + autorelease in TLS-object handling. (check-in: e9e263d62a user: js tags: trunk) | |
| 22:03 | Replace -[sleepForNMilliseconds:] with -[sleepForTimeInterval:]. (check-in: 219a630ef0 user: js tags: trunk) | |
Changes
Modified src/OFThread.h from [fdc4c85c01] to [5c73dd92a3].
| ︙ | ︙ | |||
89 90 91 92 93 94 95 | * * The specified object is first retained and then the object stored before is * released. You can specify nil as object if you want the old object to be * released and don't want any new object for the TLS key. * * \param key The Thread Local Storage key * \param obj The object the Thread Local Storage key will be set to | < | | | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | * * The specified object is first retained and then the object stored before is * released. You can specify nil as object if you want the old object to be * released and don't want any new object for the TLS key. * * \param key The Thread Local Storage key * \param obj The object the Thread Local Storage key will be set to */ + (void)setObject: (id)obj forTLSKey: (OFTLSKey*)key; /** * Returns the object for the specified Thread Local Storage key. * * The returned object is <i>not</i> retained and autoreleased for performance * reasons! * |
| ︙ | ︙ |
Modified src/OFThread.m from [907c5a1a16] to [e6c064086f].
| ︙ | ︙ | |||
70 71 72 73 74 75 76 |
}
+ threadWithObject: (id)obj
{
return [[[self alloc] initWithObject: obj] autorelease];
}
| | | | | | | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
}
+ threadWithObject: (id)obj
{
return [[[self alloc] initWithObject: obj] autorelease];
}
+ (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];
[old release];
}
+ (id)objectForTLSKey: (OFTLSKey*)key
{
return [[of_tlskey_get(key->key) retain] autorelease];
}
+ (OFThread*)currentThread
{
return [[of_tlskey_get(thread_self) retain] autorelease];
}
+ (void)sleepForTimeInterval: (int64_t)sec
{
if (sec < 0)
@throw [OFOutOfRangeException newWithClass: self];
|
| ︙ | ︙ |