title: closing non-blocking socket
body: <p>I have the following code in C.</p>
  
  <pre><code>void setNonBlocking(SOCKET fd){
      int flags;
      if (-1 == (flags = fcntl(fd, F_GETFL, 0)))
          flags = 0;
  
      fcntl(fd, F_SETFL, flags | O_NONBLOCK);
  }
  
  int main(){
  
  int sock;
  connect(sock, .....);
  setNonBlocking(sock);
  ....
  close(sock);
  
  //we will do something here but the application exits in/after the close operation
  
  }
  </code></pre>
  
  <p>I am using the socket in non-blocking mode with setNonBlocking function. When i close socket, the application immediately exits without segfault or anything else. I don't see this issue if i don't use setNonBlocking function.</p>
  
  <p>How can i close the non-blocking socket without this issue?</p>