title: Suspending GCD query problem
body: <p>i have trouble suspending a gcd query. Here is some code that demonstrates the problem:</p>
  
  <pre><code>static dispatch_queue_t q=nil;
  
  static void test(int a){
      if(q){
          dispatch_suspend(q);
          dispatch_release(q);
          q=nil;
      }
      q=dispatch_get_global_queue(0,0);
      dispatch_async(q,^ {
          while(1){NSLog(@"query %d",a);sleep(2);}
      });
  
  }
  
  int main(int argc, const char* argv[]){
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
      test(1);
  
      //blah blah blah
  
      test(2);
  
      while(1){}
      [pool release];
      return 0;
  }
  </code></pre>
  
  <p>What I'm trying to do is suspend,release and reinitialise query q when function test is called the second time, but apparenty my code is wrong and both instances of query q continue to run.</p>
  
  <p>Your help is much appreciated, thank you.</p>