title: CFSocket getting callbacks for other CFSocketContexts
body: <p>I am creating sockets and specifying a read callback like this:</p>
  
  <pre><code>// SocketUser.m     
  
  ...
  
  - (void)run
  {
      CFSocketContext context = {0, (__bridge void *)(self), NULL, NULL, NULL};
      CFSocketRef socket = CFSocketCreateWithNative(NULL, fd, kCFSocketReadCallBack, SocketReadCallback, &amp;context);
  }
  
  static void SocketReadCallback(CFSocketRef s, CFSocketCallBackType type, CFDataRef address, const void *data, void *info)
  {
      SocketUser* obj = (__bridge SocketUser *) info;
  
      [obj readData];
  }
  
  - (void)readData
  {
      ...
  }
  </code></pre>
  
  <p>In my application, there are multiple instances of SocketUser sending ICMP packets (the code is based on the SimplePing source from Apple).  </p>
  
  <p>The trouble is that each instance of SocketUser is receiving a read callback for every instance of SocketUser.  For example, if I have 5 instances and one of those instances receives a response, all 5 instances get a callback notification.  The "info" parameter can be inspected, but I don't really understand why I'm receiving callbacks for data received on other sockets.  I suppose I can just ignore callbacks from any context other than "self", but I'm kind of surprised to get the callbacks in the first place.</p>