The current FastList implementation stops a scan when it reaches a node that was the tail at a critical point in the head() call that started the scan.

As far as I can tell, the benefit is that it ensures that every scan reaches a finite set of nodes, even if other threads are continually adding new nodes to the list.

I expect this passes through to the Outrigger JavaSpaces implementation, ensuring that every search will terminate. Otherwise, a search for a non-existent entry could go on forever, as long as new entries are being added as fast as the search processes them.

Is this correct?

I'm interested in this issue because maintaining that property costs extra logic in IterableFastList. It would be simpler to let the scan go on until it reaches a node with a null next pointer, indicating the current end of the list.

Patricia

Reply via email to