Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Client::Start()
- {
- m_workerMutex.lock();
- assert(boost::algorithm::trim_copy(m_id) != "");
- assert(m_port != 0);
- if (m_running) {
- m_workerMutex.unlock();
- return;
- }
- //std::string tcpURL((boost::format("tcp://localhost:%1%") % boost::lexical_cast<std::string>(m_port)).str());
- m_context = zmq_ctx_new();
- assert(m_context != NULL);
- //m_socket = zmq_socket(m_context, ZMQ_REQ);
- //assert(m_socket != NULL);
- //int linger = 0;
- //zmq_setsockopt(m_socket, ZMQ_LINGER, &linger, sizeof(linger));
- //zmq_connect(m_socket, tcpURL.c_str());
- m_running = true;
- m_workerThread = new boost::thread(&Client::SendRequests, this);
- m_workerThread->detach();
- m_workerMutex.unlock();
- }
- void Client::Stop()
- {
- m_workerMutex.lock();
- if (!m_running) {
- m_workerMutex.unlock();
- return;
- }
- m_workerThread->interrupt();
- //std::string tcpURL((boost::format("tcp://localhost:%1%") % boost::lexical_cast<std::string>(m_port)).str());
- delete m_workerThread;
- m_workerThread = NULL;
- //int rc = zmq_disconnect(m_socket, tcpURL.c_str());
- //assert(rc == 0);
- //rc = zmq_close(m_socket);
- //assert(rc == 0);
- int rc = zmq_ctx_destroy(m_context); // ** NEVER STOCKS HERE !!
- assert(rc == 0);
- m_running = false;
- m_workerMutex.unlock();
- }
Advertisement
Add Comment
Please, Sign In to add comment