---
title: "Comment by Andrew Michell on \"C++ Lock-Free Queue - Part II\" | Hashnode"
description: "Hi Paul, excellent post! I wrote a Reserve_PopSlot function that closely resembles Reserve_EmplaceSlot and added some tests. SPSC, MPSC, SPMC all work great, ho"
url: "https://hashnode.com/posts/c-lock-free-queue-part-ii/651a5e0e0b40966cba661f63/comment/67fd3ea08052c5351da22005"
---

[Discussion](https://hashnode.com/posts/c-lock-free-queue-part-ii/651a5e0e0b40966cba661f63)

Comment [C++ Lock-Free Queue - Part II](https://hashnode.com/posts/c-lock-free-queue-part-ii/651a5e0e0b40966cba661f63)

[Apr 14, 2025](https://hashnode.com/posts/c-lock-free-queue-part-ii/651a5e0e0b40966cba661f63/comment/67fd3ea08052c5351da22005)

Hi Paul, excellent post! I wrote a Reserve\_PopSlot function that closely resembles Reserve\_EmplaceSlot and added some tests. SPSC, MPSC, SPMC all work great, however I'm running into an issue with MPMC consumer thinking that the queue is empty because cIndices.mUnwrappedPushIndex == cIndices.mUnwrappedPopIndex but mSize is not 0. Have you experienced this?... If you send me your email I can respond with my implementation of Reserve\_PopSlot. Thank you!

[Paul Mattione](https://hashnode.com/@radiantsoftware)

[Jun 13, 2025](https://hashnode.com/posts/c-lock-free-queue-part-ii/651a5e0e0b40966cba661f63/comment/67fd3ea08052c5351da22005#reply-684b6b26cff69426dd88cbe2)

Sorry I didn't see this until now! I've been really slammed lately. I have recently made my source code publicly available (for viewing only, not for copy or use yet), so you compare yours against it and see what might be different: [bitbucket.org/RadiantSoftware/engine/src/master/C…](https://bitbucket.org/RadiantSoftware/engine/src/master/Core/Containers/AtomicQueue.impl)
