title: dealloc on Background Thread
body: <p>Is it an error to call <code>dealloc</code> on a <code>UIViewController</code> from a background thread? It seems that <code>UITextView</code> (can?) eventually call <code>_WebTryThreadLock</code> which results in:</p>
  
  <blockquote>
    <p>bool _WebTryThreadLock(bool): Tried to obtain the web lock from a thread
    other than the main thread or the web thread. This may be a result of calling
    to UIKit from a secondary thread.</p>
  </blockquote>
  
  <p>Background: I have a subclassed <code>NSOperation</code> that takes a <code>selector</code> and a <code>target</code> object to notify.</p>
  
  <pre><code>-(id)initWithTarget:(id)target {
     if (self = [super init]) {
        _target = [target retain];
     }
     return self;
  }
  
  -(void)dealloc {
     [_target release];
     [super dealloc];
  }
  </code></pre>
  
  <p>If the <code>UIViewController</code> has already been dismissed when the <code>NSOperation</code> gets around to running, then the call to <code>release</code> triggers it's <code>dealloc</code> on a background thread.</p>