in src/limitless/limitless_monitor_service.cc [134:154]
void LimitlessMonitorService::DecrementReferenceCounter(const std::string& service_id) {
std::lock_guard<std::mutex> services_guard(*(this->services_mutex));
if (!this->services.contains(service_id)) {
LOG(ERROR) << "Attempted to decrement reference counter for non-existent monitor with service ID " << service_id;
return;
}
std::shared_ptr<LimitlessMonitor> service = this->services[service_id];
if (service->reference_counter > 0) {
service->reference_counter--;
} else {
LOG(ERROR) << "Monitor with service ID " << service_id << " has improper reference counter";
}
if (service->reference_counter == 0) {
service = nullptr;
services.erase(service_id);
LOG(INFO) << "Stopped monitoring with service ID " << service_id;
}
}