I'm probably overthinking this.
// Inside some method...
NSThread *thread = [[NSThread alloc] initWithTarget:functionWrapper selector:@selector(run) object:nil];
[thread start];
Calling [thread release]
after this: A. Avoids a memory leak and is necessary or... B. Will break things.
The answer to this question suggests that the thread will release itself when it finished executing, but where is that behavior documented?