diff --git a/raptor_eagle_ccd.cpp b/raptor_eagle_ccd.cpp index d22cc4a..e712993 100644 --- a/raptor_eagle_ccd.cpp +++ b/raptor_eagle_ccd.cpp @@ -1009,10 +1009,12 @@ void RaptorEagleCCD::startAquisition() throw std::system_error(RaptorEagleCCDError::ERROR_EXT_TRIGGER_MODE); } - std::lock_guard lock_guard(_acqProcessesMutex); if (_acqRingFreeBufferPtrs.empty()) { logDebug("There is no free image buffers! Try to shrink ring buffer ..."); + + std::lock_guard lock_guard(_acqProcessesMutex); + if (_acqRingBuffer.size() < DEFAULT_ACQ_RING_BUFFER_MAX_SIZE) { // shrink size_t N = 0; for (auto i = _acqRingBuffer.size(); i < DEFAULT_ACQ_RING_BUFFER_MAX_SIZE; ++i, ++N) { @@ -1117,7 +1119,7 @@ void RaptorEagleCCD::startAquisition() std::this_thread::sleep_for(std::chrono::milliseconds(10)); if ((std::chrono::utc_clock::now() - start) > CAMERA_START_ACQ_TIMEOUT) { logError("CANNOT START ACQUIRING!!!"); - throw RaptorEagleCCDError::ERROR_CANNOT_START_ACQUISITION; + throw std::system_error(RaptorEagleCCDError::ERROR_CANNOT_START_ACQUISITION); } } acq_pars->startTime = setTriggerRegisterBit(CL_TRIGGER_MODE_SNAPSHOT_BIT);