void ProgramRegistry::registerProgram(ProcessId pid, int output, int port, std::string name) { stdx::lock_guard<stdx::recursive_mutex> lk(_mutex); verify(!isPidRegistered(pid)); _portToPidMap.emplace(port, pid); _outputs.emplace(pid, output); _programNames.emplace(pid, name); }
std::string ProgramRegistry::programName(ProcessId pid) const { stdx::lock_guard<stdx::recursive_mutex> lk(_mutex); if (!isPidRegistered(pid)) { // It could be that the program has attempted to log something before it was registered. return "sh"; } return _programNames.find(pid)->second; }
void ProgramRegistry::registerProgram(ProcessId pid, int port) { stdx::lock_guard<stdx::recursive_mutex> lk(_mutex); invariant(!isPidRegistered(pid)); _registeredPids.emplace(pid); if (port != -1) { _portToPidMap.emplace(port, pid); } }
void ProgramRegistry::deletePid( pid_t pid ) { boost::recursive_mutex::scoped_lock lk( _mutex ); if ( !isPidRegistered( pid ) ) { return; } close( _pids.find( pid )->second ); _pids.erase( pid ); }
void ProgramRegistry::deleteProgram(ProcessId pid) { stdx::lock_guard<stdx::recursive_mutex> lk(_mutex); if (!isPidRegistered(pid)) { return; } close(_outputs.find(pid)->second); _outputs.erase(pid); _programNames.erase(pid); _portToPidMap.erase(portForPid(pid)); }
void ProgramRegistry::deletePid(ProcessId pid) { boost::lock_guard<boost::recursive_mutex> lk(_mutex); if (!isPidRegistered(pid)) { int port = portForPid(pid); if (port < 0) return; deletePort(port); return; } close(_pids.find(pid)->second); _pids.erase(pid); }
void ProgramRegistry::unregisterProgram(ProcessId pid) { stdx::lock_guard<stdx::recursive_mutex> lk(_mutex); invariant(isPidRegistered(pid)); _outputReaderThreads[pid].join(); // Remove the PID from the registry. _outputReaderThreads.erase(pid); _portToPidMap.erase(portForPid(pid)); _registeredPids.erase(pid); }
void ProgramRegistry::registerPid( ProcessId pid, int output ) { boost::lock_guard<boost::recursive_mutex> lk( _mutex ); verify( !isPidRegistered( pid ) ); _pids.insert( make_pair( pid, output ) ); }
void ProgramRegistry::registerReaderThread(ProcessId pid, stdx::thread reader) { stdx::lock_guard<stdx::recursive_mutex> lk(_mutex); invariant(isPidRegistered(pid)); invariant(_outputReaderThreads.count(pid) == 0); _outputReaderThreads.emplace(pid, std::move(reader)); }
void ProgramRegistry::registerPid( pid_t pid, int output ) { boost::recursive_mutex::scoped_lock lk( _mutex ); verify( !isPidRegistered( pid ) ); _pids.insert( make_pair( pid, output ) ); }