bpo-32841: Fix cancellation in awaiting asyncio.Condition (GH-5665)

(cherry picked from commit 5746510b7aef423fa4afc92b2abb919307b1dbb9)

Co-authored-by: Bar Harel <bzvi7919@gmail.com>
diff --git a/Lib/asyncio/locks.py b/Lib/asyncio/locks.py
index 508a214..91f7a01 100644
--- a/Lib/asyncio/locks.py
+++ b/Lib/asyncio/locks.py
@@ -358,12 +358,16 @@
 
         finally:
             # Must reacquire lock even if wait is cancelled
+            cancelled = False
             while True:
                 try:
                     await self.acquire()
                     break
                 except futures.CancelledError:
-                    pass
+                    cancelled = True
+
+            if cancelled:
+                raise futures.CancelledError
 
     async def wait_for(self, predicate):
         """Wait until a predicate becomes true.