title: Object that reference is pointing to is nulled
body: <p>I have this simple pool:</p>
  <pre class="lang-cs prettyprint-override"><code>public static class AiTargetInfoPool
  {
      private static Queue&lt;AiTargetInfo&gt; _pool = new Queue&lt;AiTargetInfo&gt;();
  
      public static AiTargetInfo Get()
      {
          if (_pool.Count == 0)
          {
              return new AiTargetInfo();
          }
  
          var targetInfo = _pool.Dequeue();
          return targetInfo;
      }
  
      public static void Return(AiTargetInfo opponent)
      {
          if (opponent != null)
          {
              opponent.Cleanup();
              _pool.Enqueue(opponent);
          }
      }
  }
  </code></pre>
  <p>and in code I have</p>
  <pre class="lang-cs prettyprint-override"><code>...
  139 var info = AiTargetInfoPool.Get();
  140 info.Setup(mobManager);
  ...
  </code></pre>
  <p>and exception raises</p>
  <pre><code>Catched exception: Object reference not set to an instance of an object.
   Stack trace:   at AiTargets.EvaluateDetectedObjects (UnityEngine.Collider[] colliders, System.Int32 collisions) [0x0009b] in (...)/AiTargets.cs:140 
  </code></pre>
  <p>how is that possible that AiTargetInfoPool.Get() returns null?
  My code is synchronous and single-threaded.</p>