title: ZeroMQ blocked in a context.term() call. Why? How to prevent?
body: <p>I have a java program that using ZeroMQ.</p>
  
  <p>But I found the program blocked in <code>context.term();</code> if receiving a <code>message( recvMsg() )</code> time out!</p>
  
  <pre><code>ZMQ.Context context = ZMQ.context(1);  
  ZMQ.Socket socket = context.socket(ZMQ.REQ);  
  socket.connect(mAddress);         
  
  ZMsg ZM = new ZMsg();
  ZM.add(qString);
  ZM.send(socket, true);
  
  socket.setReceiveTimeOut(mTimeout);     
  ZMsg receivedZM = ZMsg.recvMsg(socket);
  
  if(receivedZM != null) {
      System.out.println(receivedZM.getFirst().toString());   
  }      
  socket.close();  
  context.term(); 
  </code></pre>
  
  <p>What is the reason cause it to blocked?</p>
  
  <p>And how to solve this problem?</p>