A small addition we made to the wait-free protocol was
to have a thread add its newly appended node to the head array in
Line 28 even though it may have already added it in Line 20. This is
necessary because, unlike in the lock-free protocol, it could be that
the thread’s node was added by another thread in Line 20, and that
“helping” thread stopped at Line 20 right after updating the node’s
sequence number but before updating the head array.
1. Explain how removing Line 28 would violate Lemma 6.4.4.
2. Would the algorithm still work correctly?