If you issue a blocking Receive on a connected socket, and then try to Close it from another thread, the Close call will hang and the Receive will never complete.
This works properly on Windows -- the Close succeeds and the Receive throws a SocketException with errorCode = ConnectionAborted.