title: performSelectorInBackground does not finish job on iOS5
body: <p>I use <code>performSelectorInBackground</code> to do calculations on a background thread to keep the main thread responsive to UI tasks. This used to work on iOS4 but seems to cause issues on iOS5. It seems that the background thread would sometimes finish successfully and report back the result and sometimes it just dies silently without an exception or other trace. </p>
  
  <p>I'm wondering if there were any changes in iOS5 which have caused <code>performSelectorInBackground</code> to behave in an unreliable manner ?
  Or is there some better alternative to performSelectorInBackground  that I am not aware of ?</p>
  
  <pre><code>NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  
  [self.earningsController performSelectorInBackground:@selector(calculateTotalEarnings:) withObject:[NSNumber numberWithInt:_startAmount]];
  
  [pool drain];
  
  -------------------------------------------------------
  
  -(NSDecimalNumber*)calculateTotalEarnings:(NSNumber*)startAmount
  {
      NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  
      NSDecimalNumber *retValue = [NSDecimalNumber zero];
  
      @try 
      {
              retValue = [self calculateTotalsWithNumber:startAmount];
  
          // Post a Notification with calculated totals
           [[NSNotificationCenter defaultCenter] postNotificationName:TOTAL_EARNINGS_CALCULATED object:retValue];
  
      }
      @catch (NSException * e) 
      {
              NSLog("Exception: %@", [e reason]);  // never gets here
      }
  
      [pool release];
  
      return retValue;
  }
  </code></pre>