title: iOS 9 - Network reachability change causes the view to freeze - Not a crash
body: <p>After upgrading to iOS 9. My app is having a strange problem. </p>
  
  <p>PROBLEM : Whenever the network reachability changes, The app's view freezes. It is not responding to any touch events. It has not crashed either . I checked the logs. The only change was network reachability.</p>
  
  <p>MORE INFORMATION:</p>
  
  <p>1) If you quit the app and open again with Internet online, it's working fine.</p>
  
  <p>2) If I open the app with Internet offline, the view freezes. This doesn't happen in iOS 8.4.</p>
  
  <p>I'm using <a href="https://github.com/tonymillion/Reachability" rel="nofollow">Reachability by Tony million</a> library for checking the online/offline status.</p>
  
  <p>Has anyone faced the same issue after upgrading to iOS 9?</p>
  
  <p>Code for reference:</p>
  
  <pre><code>self.appIsOnline = YES;
  _reachability = [Reachability reachabilityWithHostName:@"www.google.com"];
  
  __weak __typeof(self)weakSelf = self;
  [_reachability setReachableBlock: ^(Reachability * reachability) {
  
      NSLog(@"Online");
  
      if (!weakSelf.appIsOnline)
      {
          weakSelf.appIsOnline = YES;
          weakSelf.willShowAlertView = YES;
          dispatch_async(dispatch_get_main_queue(), ^{
              CustomAlertView *alertView = [[CustomAlertView alloc] initWithTitle:@"Warning" andMessage:@"The internet connection appears to be online. The app will switch to online mode now" delegate:weakSelf withButtons:@[@"OK"]];
              alertView.shouldTapOutsideToClose = YES;
              [alertView showInView:MAIN_WINDOW];
          });
      }
  }];
  [_reachability setUnreachableBlock:^(Reachability * reachability) {
  
      NSLog(@"Offline");
  
      if (weakSelf.appIsOnline)
      {
          [[NSNotificationCenter defaultCenter] postNotificationName:OFFLINE_STATE_NOTIFICATION object:nil];
          weakSelf.appIsOnline = NO;
          dispatch_async(dispatch_get_main_queue(), ^{
              [[AppUtilities sharedUtilities] displayAlertViewWithTitle:@"Warning" andMessage:@"The internet connection appears to be offline. The app will switch to offline mode now"];
          });
      }
  }];
  
  [_reachability startNotifier];
  </code></pre>
  
  <p>Looks like my main UI thread is being blocked and the trigger for this is turning off the wi-fi. My thread trace is as below. </p>
  
  <pre><code>Thread 1Queue : com.apple.main-thread (serial)
  
  #0  0x38739130 in mach_msg_trap ()
  #1  0x38738f30 in mach_msg ()
  #2  0x265624ec in __CFRunLoopServiceMachPort ()
  #3  0x26560872 in __CFRunLoopRun ()
  #4  0x264b31e8 in CFRunLoopRunSpecific ()
  #5  0x264b2fdc in CFRunLoopRunInMode ()
  #6  0x2f757af8 in GSEventRunModal ()
  #7  0x2a71818c in UIApplicationMain ()
  #8  0x00117f20 in main
  
  Thread 3Queue : com.apple.libdispatch-manager (serial)
  
  #0  0x3874e3c0 in kevent_qos ()
  #1  0x0067d5f6 in _dispatch_mgr_invoke ()
  #2  0x0066ea76 in _dispatch_mgr_thread ()
  
  com.apple.NSURLConnectionLoader (11)
  
  #0  0x38739130 in mach_msg_trap ()
  #1  0x38738f30 in mach_msg ()
  #2  0x265624ec in __CFRunLoopServiceMachPort ()
  #3  0x26560872 in __CFRunLoopRun ()
  #4  0x264b31e8 in CFRunLoopRunSpecific ()
  #5  0x264b2fdc in CFRunLoopRunInMode ()
  #6  0x25e240ae in +[NSURLConnection(Loader) _resourceLoadLoop:] ()
  #7  0x273747fc in __NSThread__start__ ()
  #8  0x387ebc92 in _pthread_body ()
  #9  0x387ebc06 in _pthread_start ()
  #10 0x387e9a24 in thread_start ()
  
  AFNetworking (12)#0 0x38739130 in mach_msg_trap ()
  
  #1  0x38738f30 in mach_msg ()
  #2  0x265624ec in __CFRunLoopServiceMachPort ()
  #3  0x26560872 in __CFRunLoopRun ()
  #4  0x264b31e8 in CFRunLoopRunSpecific ()
  #5  0x264b2fdc in CFRunLoopRunInMode ()
  #6  0x272a3d7c in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
  #7  0x272f28ec in -[NSRunLoop(NSRunLoop) run] ()
  #8  0x00122a2e in +[AFURLConnectionOperation networkRequestThreadEntryPoint:] at /Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m:168
  #9  0x273747fc in __NSThread__start__ ()
  #10 0x387ebc92 in _pthread_body ()
  #11 0x387ebc06 in _pthread_start ()
  #12 0x387e9a24 in thread_start ()
  
  com.apple.CFSocket.private (13)#0   0x3874cfb4 in __select ()
  
  #1  0x26567990 in __CFSocketManager ()
  #2  0x387ebc92 in _pthread_body ()
  #3  0x387ebc06 in _pthread_start ()
  #4  0x387e9a24 in thread_start ()
  </code></pre>