Skip to content

Commit d3d78d9

Browse files
committed
Initial commit
1 parent f2c7c0d commit d3d78d9

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

Lib/multiprocessing/synchronize.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ def wait(self, timeout=None):
369369

370370
def __repr__(self):
371371
set_status = 'set' if self.is_set() else 'unset'
372-
return f"<{type(self).__qualname__} at {id(self):#x} {set_status}>"
372+
return f"<{type(self).__qualname__}({set_status})>"
373+
373374
#
374375
# Barrier
375376
#
@@ -409,3 +410,9 @@ def _count(self):
409410
@_count.setter
410411
def _count(self, value):
411412
self._array[1] = value
413+
414+
def __repr__(self):
415+
name = self.__class__.__qualname__
416+
if self.broken:
417+
return f"<{name}(broken)>"
418+
return (f"<{name}(waiters={self.n_waiting}/{self.parties})>")

Lib/test/_test_multiprocessing.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2133,11 +2133,11 @@ def test_event(self):
21332133
def test_repr(self) -> None:
21342134
event = self.Event()
21352135
if self.TYPE == 'processes':
2136-
self.assertRegex(repr(event), r"<Event at .* unset>")
2136+
self.assertIn("<Event(unset)>", repr(event))
21372137
event.set()
2138-
self.assertRegex(repr(event), r"<Event at .* set>")
2138+
self.assertIn("<Event(set)>", repr(event))
21392139
event.clear()
2140-
self.assertRegex(repr(event), r"<Event at .* unset>")
2140+
self.assertIn("<Event(unset)>", repr(event))
21412141
elif self.TYPE == 'manager':
21422142
self.assertRegex(repr(event), r"<EventProxy object, typeid 'Event' at .*")
21432143
event.set()
@@ -2504,6 +2504,18 @@ def test_thousand(self):
25042504
for j in range(self.N):
25052505
self.assertEqual(conn.recv(), i)
25062506

2507+
def test_repr(self):
2508+
b = self.barrier
2509+
if self.TYPE == 'process':
2510+
self.assertIn(f"waiters=0/{self.N}", repr(b))
2511+
b.abort()
2512+
self.assertIn("broken", repr(b))
2513+
self.assertNotIn("at", repr(b))
2514+
elif self.TYPE == 'manager':
2515+
self.assertRegex(repr(b), r"<BarrierProxy object, typeid 'Barrier' at .*")
2516+
b.abort()
2517+
self.assertRegex(repr(b), r"<BarrierProxy object, typeid 'Barrier' at .*")
2518+
25072519
#
25082520
#
25092521
#

0 commit comments

Comments
 (0)