When we have the following situation, message B3 will not get delivered at A:
- A and B
- B sends 3 unicast messages: B1 (regular), B2 (OOB) and B3 (regular); B2 is dropped
- A receives B1, B3, B2
- A delivers B1
- B3 has to wait until B2 is received, so the thread returns
- B2 is received, but since it is OOB, after pushing the message up the stack, the thread terminates !
==> B3 will not get delivered until B4 is received !
For NAKACK, this is not critical as stability messages will fix the 'last message lost problem'. But, it would be nice to have the same solution to this problem also for NAKACK...