/** * @brief Cancel all addresses. * * @fn zp_net_Engine::RemoveAllAddresses */ void zp_net_Engine::RemoveAllAddresses() { //m_mutex_listen.lock(); foreach (QString id,m_map_netListenThreads.keys()) emit stopListen(id); //m_mutex_listen.unlock(); }
void TestRecv(const TCHAR *addr, int port) { HMODULE dllp = LoadLib(); if (dllp == NULL) return; _tprintf(_T("listening %s:%d\n"), addr, port); startListenAddr(addr, port); _tprintf(_T("listen port - OK\n")); while (1) { TCHAR *data = pickMessage(); if (data != 0) { if(data[0] != 0) _tprintf(_T("%s\n"), data); delete[] data; } } _tprintf(_T("stopping listening\n")); stopListen(); _tprintf(_T("stopping listening - OK\n")); FreeLibrary(dllp); }
/** * @brief Remove a listening socket at special address and port.The socket will be deactivated as soon as possible * * @fn zp_net_Engine::RemoveListeningAddress * @param id Listening-Address name specified by AddListeningAddress() */ void zp_net_Engine::RemoveListeningAddress(QString id) { //m_mutex_listen.lock(); if (m_map_netListenThreads.find(id)!=m_map_netListenThreads.end()) emit stopListen(id); //m_mutex_listen.unlock(); }
/*! \internal */ HbIndicatorPrivate::~HbIndicatorPrivate() { TRACE_ENTRY stopListen(); delete iBuffer; if (iAsyncListener) { iAsyncListener->Cancel(); delete iAsyncListener; } TRACE_EXIT }
void RabbitMQService::stop () { stopListen(); GST_DEBUG ("stop service"); if (pipeline) { pipeline.reset(); } for (auto pid : childs) { GST_DEBUG ("Killing child %d", pid); kill (pid, SIGINT); } }
void netGameEnd() { if(!isNetGame){ if(isListening) stopListen(); return; } wr1(C_END); undoRequest=0; for(int i=0; i<50; i++){ Sleep(200); if(!isNetGame) return; } EnterCriticalSection(&netLock); if(netGameThread){ wrLog("The other computer is not responding"); netGameDone(); TerminateThread(netGameThread, 1); } LeaveCriticalSection(&netLock); }
DWORD WINAPI listenNetGame(void *) { sockaddr_in sa; SOCKET sock_c; int sl; bool b; wrLog(lng(866, "Waiting for the other player")); for(;;){ sl= sizeof(sa); if((sock_c= accept(sock_l, (sockaddr *)&sa, &sl))==INVALID_SOCKET){ wrLog(lng(867, "Finished listening for requests from the internet")); break; } EnterCriticalSection(&netLock); b=isNetGame; isNetGame=true; LeaveCriticalSection(&netLock); if(b){ wr1(sock_c, C_BUSY); Sleep(1000); closesocket(sock_c); } else{ sock=sock_c; netGameIP=sa; initWSA(); DWORD id; ResumeThread(netGameThread=CreateThread(0, 0, netGameLoop, 0, CREATE_SUSPENDED, &id)); stopListen(); break; } } WSACleanup(); isListening=false; return 0; }
void RabbitMQService::processMessage (RabbitMQMessage &message) { int pid = fork(); if (pid < 0) { throw RabbitMQException ("Proccess cannot be forked"); } else if (pid == 0) { /* Child process */ childs.clear(); stopListen(); getConnection()->noCloseOnRelease(); pipeline = std::shared_ptr<RabbitMQPipeline> (new RabbitMQPipeline (confFile, address, port) ); pipeline->startRequest (message); } else { /* Parent process */ childs.push_back (pid); message.noRejectOnRelease(); } }
ConnectionManager::~ConnectionManager() { stopListen(); closesocket(this->socketDescriptor); }
bool BoardFXO::KhompPvtFXO::doChannelAnswer(CommandRequest &cmd) { DBG(FUNC, PVT_FMT(_target, "(FXO) c")); bool ret = true; try { ScopedPvtLock lock(this); // is this a collect call? bool has_recv_collect_call = _call->_collect_call; if(has_recv_collect_call) DBG(FUNC, PVT_FMT(target(), "receive a collect call")); if(call()->_flags.check(Kflags::DROP_COLLECT)) DBG(FUNC, PVT_FMT(target(), "flag DROP_COLLECT == true")); // do we have to drop collect calls? bool has_drop_collect_call = call()->_flags.check(Kflags::DROP_COLLECT); // do we have to drop THIS call? bool do_drop_call = has_drop_collect_call && has_recv_collect_call; if(!do_drop_call) { command(KHOMP_LOG, CM_CONNECT); } if(has_drop_collect_call) { if(has_recv_collect_call) { usleep(75000); DBG(FUNC, PVT_FMT(target(), "disconnecting collect call doChannelAnswer FXO")); command(KHOMP_LOG,CM_DISCONNECT); // thou shalt not talk anymore! stopListen(); stopStream(); } else { DBG(FUNC, PVT_FMT(target(), "dropping collect call at doChannelAnswer FXO")); command(KHOMP_LOG, CM_DROP_COLLECT_CALL); } } ret = KhompPvt::doChannelAnswer(cmd); } catch (ScopedLockFailed & err) { LOG(ERROR, PVT_FMT(_target,"(FXO) r (unable to lock %s!)") % err._msg.c_str() ); return false; } DBG(FUNC, PVT_FMT(_target, "(FXO) r")); return ret; }