title: GCD with NSURLConnection
body: <p>I am using <code>GCD</code> to send <code>HTTP</code> request asynchronously. Here is the code that doesn't work:</p>
  
  <pre><code>dispatch_async(connectionQueue, ^{
          NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
  
          [request setURL:[NSURL URLWithString:[NSString stringWithFormat:someURL]]];
  
  
          NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
          [connection start];//Not working
      }); 
  </code></pre>
  
  <p>the above code is not working at all. I am not getting any call back in NSURLConnectionDelegate's methods.</p>
  
  <p>But when i tried the following code, everything worked fine and i got proper callbacks</p>
  
  <pre><code>NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
  
  [request setURL:[NSURL URLWithString:[NSString stringWithFormat:someURL]]];
  
  NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
  
  dispatch_async(connectionQueue, ^{
  
      [connection start]; // working fine. But WHY ????
  });
  </code></pre>
  
  <p>Can some one please explain this weird behavior of block/GCD?</p>