title: In Objective C, what happens if we pass nil or null to @synchronized() block?
body: <p>Usually we will pass an object to @synchronized() block for unique reference. for example,</p>
  
  <pre><code>+(id)sharedDBHandler
  {
      @synchronized (self) {
          if (sDBHandler == nil) {
              sDBHandler = [self new];
          }
      }
      return sDBHandler;
  }
  </code></pre>
  
  <p>what happens if we pass nil to it?</p>