| 13 | } |
| 14 | |
| 15 | void Task::deRegisterThreadAndFinalizeTask() { |
| 16 | lock_t lck{taskMtx}; |
| 17 | ++numThreadsFinished; |
| 18 | if (!hasExceptionNoLock() && isCompletedNoLock()) { |
| 19 | try { |
| 20 | finalize(); |
| 21 | } catch (std::exception& e) { |
| 22 | setExceptionNoLock(std::current_exception()); |
| 23 | } |
| 24 | } |
| 25 | if (isCompletedNoLock()) { |
| 26 | lck.unlock(); |
| 27 | cv.notify_all(); |
| 28 | } |
| 29 | } |
| 30 | |
| 31 | } // namespace common |
| 32 | } // namespace lbug |
no test coverage detected