Commit c635b0a9 authored by Jesse Noller's avatar Jesse Noller

merge 70783 back to 26maint

parent 821e1ee4
...@@ -548,6 +548,10 @@ class _TestLock(BaseTestCase): ...@@ -548,6 +548,10 @@ class _TestLock(BaseTestCase):
self.assertEqual(lock.release(), None) self.assertEqual(lock.release(), None)
self.assertRaises((AssertionError, RuntimeError), lock.release) self.assertRaises((AssertionError, RuntimeError), lock.release)
def test_lock_context(self):
with self.Lock():
pass
class _TestSemaphore(BaseTestCase): class _TestSemaphore(BaseTestCase):
......
...@@ -251,6 +251,7 @@ Dinu Gherman ...@@ -251,6 +251,7 @@ Dinu Gherman
Jonathan Giddy Jonathan Giddy
Johannes Gijsbers Johannes Gijsbers
Michael Gilfix Michael Gilfix
Tim Golden
Chris Gonnerman Chris Gonnerman
David Goodger David Goodger
Hans de Graaff Hans de Graaff
......
...@@ -92,6 +92,9 @@ Core and Builtins ...@@ -92,6 +92,9 @@ Core and Builtins
Library Library
------- -------
- Issue #5261: Patch multiprocessing's semaphore.c to support context
manager use: "with multiprocessing.Lock()" works now.
- Issue #5177: Multiprocessing's SocketListener class now uses - Issue #5177: Multiprocessing's SocketListener class now uses
socket.SO_REUSEADDR on all connections so that the user no longer needs socket.SO_REUSEADDR on all connections so that the user no longer needs
to wait 120 seconds for the socket to expire. to wait 120 seconds for the socket to expire.
......
...@@ -546,7 +546,7 @@ static PyMethodDef semlock_methods[] = { ...@@ -546,7 +546,7 @@ static PyMethodDef semlock_methods[] = {
"acquire the semaphore/lock"}, "acquire the semaphore/lock"},
{"release", (PyCFunction)semlock_release, METH_NOARGS, {"release", (PyCFunction)semlock_release, METH_NOARGS,
"release the semaphore/lock"}, "release the semaphore/lock"},
{"__enter__", (PyCFunction)semlock_acquire, METH_VARARGS, {"__enter__", (PyCFunction)semlock_acquire, METH_VARARGS | METH_KEYWORDS,
"enter the semaphore/lock"}, "enter the semaphore/lock"},
{"__exit__", (PyCFunction)semlock_release, METH_VARARGS, {"__exit__", (PyCFunction)semlock_release, METH_VARARGS,
"exit the semaphore/lock"}, "exit the semaphore/lock"},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment