Example #1
0
zx_status_t ServerManager::CloseFifoServer() {
    switch (GetState()) {
    case ThreadState::Running:
        server_->ShutDown();
        JoinServer();
        break;
    case ThreadState::Joinable:
        zxlogf(ERROR, "block: Joining un-closed FIFO server\n");
        JoinServer();
        break;
    case ThreadState::None:
        break;
    }
    return ZX_OK;
}
Example #2
0
bool ServerManager::IsFifoServerRunning() {
    switch (GetState()) {
    case ThreadState::Running:
        return true;
    case ThreadState::Joinable:
        // Joining the thread here is somewhat arbitrary -- as opposed to joining in
        // |StartServer()| -- but it lets us avoid a second atomic load.
        JoinServer();
        break;
    case ThreadState::None:
        break;
    }
    return false;
}
///////////////////
// Join a server
void Menu_Net_NETJoinServer(const std::string& sAddress, const std::string& sName)
{
	// Fill in the game structure
	CCombobox* combo = (CCombobox *) cInternet.getWidget(mi_PlayerSelection);
	const GuiListItem::Pt item = combo->getSelectedItem();
	if(!item.get()) {
		errors << "no player selected" << endl;
		return;
	}
		
	tLXOptions->sLastSelectedPlayer = item->index();

	if(!JoinServer(sAddress, sName, item->index()))
		return;

	// Shutdown
	cInternet.Shutdown();
	
	iNetMode = net_join;
	tMenu->iReturnTo = net_internet;
	
	// Connect to the server
	Menu_Net_JoinConnectionInitialize(sAddress);
}