void DGLDebugeeQTProcess::pollReady() { if (m_Loaded) { if (waitForSocket(true)) { m_PollTimer->stop(); emit processReady(); } } else { if (m_SemLoader.try_wait()) { m_Loaded = true; pollReady(); } } }
void SkynetClient::processSkynet(char *data, char *ack) { jsmn_parser p; jsmntok_t tok[MAX_PARSE_OBJECTS]; jsmn_init(&p); int r = jsmn_parse(&p, data, tok, MAX_PARSE_OBJECTS); if (r != 0){ DBGCS("parse failed: "); DBGCN(r); return; } if (TOKEN_STRING(data, tok[2], IDENTIFY )) { DBGCSN(IDENTIFY); processIdentify(data, tok); } else if (TOKEN_STRING(data, tok[2], READY )) { DBGCSN(READY); processReady(data, tok); } else if (TOKEN_STRING(data, tok[2], NOTREADY )) { DBGCSN(NOTREADY); processNotReady(data, tok); } else if (TOKEN_STRING(data, tok[2], BIND )) { DBGCSN(BIND); processBind(data, tok, ack); } else if (TOKEN_STRING(data, tok[2], MESSAGE )) { DBGCSN(MESSAGE); processMessage(data, tok); } else { DBGCS("Unknown:"); } }
void DGLRunAppProject::startDebugging() { // randomize connection port int port = rand() % (0xffff - 1024) + 1024; m_process = new DGLDebugeeQTProcess(port, m_EglMode); m_process->setParent(this); CONNASSERT(m_process, SIGNAL(processReady()), this, SLOT(processReadyHandler())); CONNASSERT(m_process, SIGNAL(processError(std::string)), this, SLOT(processErrorHandler(std::string))); CONNASSERT(m_process, SIGNAL(processFinished(int)), this, SLOT(processExitHandler(int))); CONNASSERT(m_process, SIGNAL(processCrashed()), this, SLOT(processCrashHandler())); m_process->run(getExecutable(), getPath(), getCommandLineArgVector(), getSkipProcessesCount()); }