title: NSOperationQueue is performing on the main thread on ios4 and not on io5?
body: <p>Is there any reason why an NSOperationQueue is performing on the main thread on ios 4.2.1 and runing on a seperate thread (as expected) on ios 5.0.1.</p>
  
  <p>I'm using an NSOperationQueue to perfom a busy operation on a big amount of pictures (ALassets) on the launch of my app but it's runing on the main thread on ios4 and not on ios5...</p>
  
  <p>Here is a piece of code</p>
  
  <p>from the main thread :</p>
  
  <pre><code>    cacheManager = [[PicturesCacheManager alloc] initWithDelegate:self];
      //start the generation of the pictures array
      NSLOG(@"setUpToDatePicturesArray");
      operationQueue = [[NSOperationQueue alloc] init];
      [operationQueue addOperation:cacheManager];
      [cacheManager release];
  </code></pre>
  
  <p>From PictureCacheManager :</p>
  
  <pre><code>- (id)initWithDelegate:(id &lt;CachePicturesProtocol&gt; )delegatePic
  {
      self = [super init];
      if (self) {
          // Initialization code here.
          [self setDelegate:delegatePic];
      }
  
  return self;
  } 
  
  -(void)main{
      [self loadCurrentCameraRoll]; //do lot of stuff 
  }
  
  -(void)loadCurrentCameraRoll{
  //NSLOG(@"loadCurrentCameraRoll");
  // photos
  void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
      //photos only!
      if(result != NULL &amp;&amp; [[result valueForProperty:@"ALAssetPropertyType"] isEqualToString:@"ALAssetTypePhoto"]) {
  
          //Do stuff
      }
  };
  
  void (^assetGroupEnumerator)( ALAssetsGroup *, BOOL *) =  ^(ALAssetsGroup *group, BOOL *stop) {
      if(group != nil) {
          NSLOG(@"current group = %@", group);
          [group enumerateAssetsUsingBlock:assetEnumerator];
      }
      else{
          //we've enumerated all the groups
  
      }
  };
  
  assetsList = [[NSMutableArray alloc] init];
  ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
  
  [library enumerateGroupsWithTypes:ALAssetsGroupAll
                         usingBlock:assetGroupEnumerator
                       failureBlock: ^(NSError *error) {
                           NSLOG(@"Failure : %@", [error description]);
                       }];
  
  }
  </code></pre>
  
  <p>UPDATE : It seems that the matter comes from the enumerateGroupsWithTypes:usingBlock:failureBlock: method. 
  Before I call it I'm actually in a seperate thread but after it goes thru it switches to the main thread...</p>