Based on what I've read so far about UDLD and LoopGuard, it seems that in the case of a unidirectional link failure, a switching loop would form because the blocking port would transition into a forwarding state. However, I don't understand why the other switch wouldn't transition from a designated port to a blocking port, as this would mitigate the loop. Let me know if I'm missing some information here. To illustrate my question, here's a sample topology I pulled from the internet:
In the above topology, once SW2 stops receiving BPDU's from SW3, Gi0/1 on SW2 would supposedly transition into a forwarding state. So why wouldn't Gi0/1 on SW3 transition into a blocking state once it starts receiving traffic from SW2?