package openminer; import java.sql.*; import java.net.*; import java.io.*; public class MinerThread extends Thread { private Connection m_Connection; private Socket m_Socket = null; private boolean m_Finished = false; private boolean m_Running; private MinerTask m_Task; public MinerThread() { m_Task = new MinerTask(); } public void connect(Connection conn) throws Exception { m_Connection = conn; m_Task.connect(conn); } public void setSocket(Socket s) { m_Socket = s; } public void exit() throws Exception { m_Connection.close(); if(!m_Finished) m_Finished = true; if(m_Socket != null) { m_Socket.close(); m_Socket = null; } } public synchronized void setRunning(boolean isRunning) { m_Running = isRunning; if(m_Running) this.notify(); } public synchronized void run() { // TODO Auto-generated method stub try { while (!m_Finished) { if (!m_Running) this.wait(); else { InputStream is = m_Socket.getInputStream(); OutputStream os = m_Socket.getOutputStream(); m_Task.setIOStream(is,os); m_Task.execute(); is.close(); os.close(); m_Socket.close(); m_Socket = null; m_Running = false; } } } catch (Exception e) { e.printStackTrace(); } } }