static void do_work() { PRThread *ServerThread; PRInt32 state; SetServerState(MAIN, SERVER_STATE_STARTUP); ServerThread = PR_CreateThread( PR_USER_THREAD, ServerThreadFunc, NULL, PR_PRIORITY_NORMAL, ServerScope, PR_JOINABLE_THREAD, THREAD_STACKSIZE); if (!ServerThread) { if (debug_mode) printf("error creating main server thread\n"); return; } /* Wait for server to be ready */ state = WaitServerState(MAIN, SERVER_STATE_READY|SERVER_STATE_DEAD); if (!(state & SERVER_STATE_DEAD)) { /* Run Test Clients */ RunClients(); /* Send death signal to server */ SetServerState(MAIN, SERVER_STATE_DYING); } PR_JoinThread(ServerThread); }
void CManualTransfer::SetControlState() { SetServerState(); SetAutoAsciiState(); XRCCTRL(*this, "ID_SERVER_SITE_SELECT", wxButton)->Enable(XRCCTRL(*this, "ID_SERVER_SITE", wxRadioButton)->GetValue()); }
/* The main server loop */ void ServerThreadFunc(void *unused) { PRFileDesc *listenSocket; /* Do setup */ listenSocket = ServerSetup(); if (!listenSocket) { SetServerState(SERVER, SERVER_STATE_DEAD); } else { if (debug_mode) DPRINTF("\tServer up\n"); /* Tell clients they can start now. */ SetServerState(SERVER, SERVER_STATE_READY); /* Now wait for server death signal */ WaitServerState(SERVER, SERVER_STATE_DYING); /* Cleanup */ SetServerState(SERVER, SERVER_STATE_DEAD); } }
void CManualTransfer::OnServerTypeChanged(wxCommandEvent& event) { if (event.GetId() == XRCID("ID_SERVER_CURRENT")) { delete m_pServer; if (m_pState->GetServer()) m_pServer = new CServer(*m_pState->GetServer()); else m_pServer = 0; } else if (event.GetId() == XRCID("ID_SERVER_SITE")) { delete m_pServer; if (m_pLastSite) m_pServer = new CServer(*m_pLastSite); else m_pServer = 0; } XRCCTRL(*this, "ID_SERVER_SITE_SELECT", wxButton)->Enable(event.GetId() == XRCID("ID_SERVER_SITE")); DisplayServer(); SetServerState(); }