content: package com.alipay.bluewhale.core.zilch;
  
  import org.apache.log4j.Logger;
  import org.zeromq.ZMQ.Context;
  import org.zeromq.ZMQ.Socket;
  
  import backtype.storm.daemon.Shutdownable;
  
  import com.alipay.bluewhale.core.utils.AsyncLoopThread;
  /**
   * رմ򿪵˿߳
   * @author yannian
   *
   */
  public class VirtualPortShutdown implements Shutdownable{
      private static Logger LOG = Logger.getLogger(VirtualPortShutdown.class);
  
      public VirtualPortShutdown(Context context,
  	    AsyncLoopThread vthread, String url) {
  	this.context = context;
  	this.vthread = vthread;
  	this.url = url;
      }
  
      Context context;
      Socket kill_socket;
      AsyncLoopThread vthread;
      String url;
  
  
      @Override
      public void shutdown() {
  	Socket kill_socket = ZeroMq.socket(context, ZeroMq.push);
  	ZeroMq.connect(kill_socket, url);
  	VirtualPort.virtual_send(kill_socket, -1, new byte[0]);
  
  	kill_socket.close();
  
  	LOG.info("Waiting for virtual port at url " + url + " to die");
  
  	try {
  	    vthread.join();
  	} catch (InterruptedException e) {
  
  	}
  
  	LOG.info("Shutdown virtual port at url: " + url);
      }
  }
  