a maybe trivial question to this: don't you need some lock around these to ensure that some other thread does not change the "other" items member while things are swapped/exchanged -- i.e. "between the lines" ?