Mercurial > cpython-lru_cache-weakref
diff Doc/lib/libthreading.tex @ 37259:af24eb3bbfce legacy-trunk
Document objects that can be used with the ``with`` statement.
| author | Phillip J. Eby <pje@telecommunity.com> |
|---|---|
| date | Tue, 28 Mar 2006 00:13:10 +0000 |
| parents | 8756973a6b99 |
| children | 0b2b076e5908 654c380cf8b9 |
line wrap: on
line diff
--- a/Doc/lib/libthreading.tex Tue Mar 28 00:08:22 2006 +0000 +++ b/Doc/lib/libthreading.tex Tue Mar 28 00:13:10 2006 +0000 @@ -675,3 +675,26 @@ Stop the timer, and cancel the execution of the timer's action. This will only work if the timer is still in its waiting stage. \end{methoddesc} + +\subsection{Using locks, conditions, and semaphores in the \keyword{with} +statement \label{with-locks}} + +All of the objects provided by this module that have \method{acquire()} and +\method{release()} methods can be used as context managers for a \keyword{with} +statement. The \method{acquire()} method will be called when the block is +entered, and \method{release()} will be called when the block is exited. + +Currently, \class{Lock}, \class{RLock}, \class{Condition}, \class{Semaphore}, +and \class{BoundedSemaphore} objects may be used as \keyword{with} +statement context managers. For example: + +\begin{verbatim} +from __future__ import with_statement +import threading + +some_rlock = threading.RLock() + +with some_rlock: + print "some_rlock is locked while this executes" +\end{verbatim} +
