I'm looking for a non-blocking index pool, i.e., a finite set of integers in the range [0,n) where get() returns an arbitrary integer from the set and put(x) writes index x back to the set (there is no need to check for duplicates as only indices retrieved using get() are written back). As straightforward solution would be to use a bounded MPMC queue, e.g. http://www.1024cores.net/home/lock-free-algorithms/queues/bounded-mpmc-queue, initially filled with 0, 1, ..., n-1. However, as the data itself (integers) can be manipulated atomically and there are no constraints on the order in which indices have to be processed (FIFO, LIFO, etc.), there might be even simpler / more efficient solutions. Any ideas or hints? Thank you very much in advance for your help!
-- --- You received this message because you are subscribed to the Google Groups "Scalable Synchronization Algorithms" group. To unsubscribe from this group and stop receiving emails from it, send an email to lock-free+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/lock-free/ff8ff0a7-1a37-4515-aeff-853f9b10bd00%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.