advanced
遗留C++多线程代码审计
识别并修复老旧代码中的并发安全问题和资源泄漏。
📝 Contenu du Prompt
请审查一段假设的C++11代码片段,该代码使用了互斥锁和条件变量来实现生产者-消费者模式。代码中可能存在以下隐患:死锁风险、因异常导致的资源未释放、虚假唤醒处理不当以及竞态条件。请指出代码中的具体错误行号及其原因,并使用现代C++特性(如std:: lock_guard, std:: unique_lock)重写该代码,确保其线程安全且具备异常安全性。