Hi, I am using boost::asio to create a server. When a new connection is established (inside the asio read handle) a new thread (boost::thread) is created. The thread object pointer is kept in a static vector. When the next connection is established, the thread pointer available in the static vector is read and interrupted. But the thread is not interrupted! The thread is just an infinite loop, in which interruption is enabled. I have wrttien the exception handler also. Not able to understand why this is not working in this situation. Otherwise this works. To make this clear given below are the code snippets... //ASIO based read handler void TCPConnection::HandleRead(const boost::system::error_code& Error) { TCPConnection::Threadvector[0]->interrupt(); //Threadvector is static variable in the class, for easy reading written like this boost::thread *th=new boost::thread(boost::bind(&TCPConnection::ExecutionRoutine,shared_from_this(),Command)); TCPConnection::Threadvector.push_back(th); } //ExecutionRoutine looks like this int TCPConnection::ExecutionRoutine(string Command) { try { while(1) { boost::this_thread::interruption_point(); } } catch(boost::thread_interrupted const&) { return 0; } return 0; } Please share some idea... Thanks, Lloyd ___________________ Happy New Year 2010