testing-message-queue
Installation
SKILL.md
Testing the Message Queue
This skill describes how to write tests for the bocpy message queue — the
lock-free, tag-based MPSC ring buffer implemented in C that underlies
send()/receive().
Architecture Overview
| Component | Detail |
|---|---|
| Queues | 16 statically allocated ring buffers (BOC_QUEUE_COUNT = 16), each with capacity 16 384. |
| Tags | String labels that map 1:1 to queues. Each unique tag occupies one queue slot. |
| Assignment modes | Automatic (default): tags claim a queue on first send/receive. Explicit: set_tags() pre-assigns tags, clears all messages, and resets queues. |
set_tags([]) |
Drains every queue, frees all tag associations, and sets all queues to UNASSIGNED — effectively restoring auto-assign mode. |
| Thread safety | Enqueue is lock-free (atomic CAS on tail). Multiple threads can send to the same tag concurrently. receive spins on the queue with a sleep until a message is available or a timeout elapses. |
Test File Location
Message queue tests live in test/test_message_queue.py.