If I can use FIFO queue and read/write registers, can I reach wait free 2 set consensus if I have 3 processes? I thought is I can, but I saw a conclusion from text book says "we cannot achieve 2 set consensus on 3 processes in shared memory system", so I'm confused now.
Quoted from Chapter 16 of the book: Distributed Computing: Fundamentals, Simulations, and Advanced Topics (2004):
(Page 345) We now show that there is no algorithm for solving $k$-set consensus in the presence of $f \ge k$ failures.
(Page 351) Theorem 16.7 There is no wait-free algorithm for solving $2$-set consensus problem in an asynchronous shared memory system with three processors.
The proof is quite complicated. See also the paper: The Asynchronous Computability Theorem for $t$-Resilient Tasks.