diff --git a/system/camerad/cameras/spectra.cc b/system/camerad/cameras/spectra.cc index 79dc83d9d6..22a29611de 100644 --- a/system/camerad/cameras/spectra.cc +++ b/system/camerad/cameras/spectra.cc @@ -137,26 +137,23 @@ static cam_cmd_power *power_set_wait(cam_cmd_power *power, int16_t delay_ms) { // *** MemoryManager *** void *MemoryManager::alloc_buf(int size, uint32_t *handle) { - lock.lock(); void *ptr; - if (!cached_allocations[size].empty()) { - ptr = cached_allocations[size].front(); - cached_allocations[size].pop(); + auto &cache = cached_allocations[size]; + if (!cache.empty()) { + ptr = cache.front(); + cache.pop(); *handle = handle_lookup[ptr]; } else { ptr = alloc_w_mmu_hdl(video0_fd, size, handle); handle_lookup[ptr] = *handle; size_lookup[ptr] = size; } - lock.unlock(); memset(ptr, 0, size); return ptr; } void MemoryManager::free(void *ptr) { - lock.lock(); cached_allocations[size_lookup[ptr]].push(ptr); - lock.unlock(); } MemoryManager::~MemoryManager() { diff --git a/system/camerad/cameras/spectra.h b/system/camerad/cameras/spectra.h index 19472a98cd..9c2026058a 100644 --- a/system/camerad/cameras/spectra.h +++ b/system/camerad/cameras/spectra.h @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -59,7 +58,6 @@ private: void *alloc_buf(int len, uint32_t *handle); void free(void *ptr); - std::mutex lock; std::map handle_lookup; std::map size_lookup; std::map > cached_allocations;