List of usage examples for com.squareup.okhttp.internal Util threadFactory
public static ThreadFactory threadFactory(final String name, final boolean daemon)
From source file:org.xbmc.kore.testutils.tcpserver.MockTcpServer.java
License:Open Source License
/** * * @param inetSocketAddress set portnumber to 0 to select a random free port * @throws IOException//from www. j av a 2 s . c o m */ public void start(InetSocketAddress inetSocketAddress) throws IOException { if (started) throw new IllegalStateException("start() already called"); started = true; this.inetSocketAddress = inetSocketAddress; serverSocket = serverSocketFactory.createServerSocket(); // Reuse port if not using a random port serverSocket.setReuseAddress(inetSocketAddress.getPort() != 0); serverSocket.bind(inetSocketAddress, 50); executor = Executors.newCachedThreadPool(Util.threadFactory("MockTcpServer", false)); port = serverSocket.getLocalPort(); executor.execute(new Runnable() { @Override public void run() { try { acceptConnection(); } catch (Throwable e) { LogUtils.LOGE(TAG, " failed unexpectedly: " + e); } // Release all sockets and all threads, even if any close fails. Util.closeQuietly(serverSocket); for (Iterator<Socket> s = openClientSockets.iterator(); s.hasNext();) { Util.closeQuietly(s.next()); s.remove(); } executor.shutdown(); } private void acceptConnection() throws Exception { while (true) { Socket socket; try { socket = serverSocket.accept(); } catch (SocketException e) { //Socket closed return; } openClientSockets.add(socket); serveConnection(socket); } } }); }