views:

158

answers:

1

I'd just like to know if it's advised to return from a method within a @synchronized block? For example:

- (id)test {
   @synchronized(self) {
      if (a) return @"A";
      else return @"B";
   }
}

As opposed to:

- (id)test {
   NSString *value;
   @synchronized(self) {
      if (a) value = @"A";
      else value = @"B";
   }
   return value;
}

This sample is rather simplistic, but sometimes in a complex method it would make things simpler to be able to return from within a @synchronized block.

+3  A: 

It's fine. @synchronized is aware of the return statement.

(Ref: http://www.thaesofereode.info/clocFAQ/#sync-advs)

KennyTM
Great, thanks :-)
Michael Waterfall