Commit 2294c0d4 authored by Neal Norwitz's avatar Neal Norwitz

Cleanup from patch #683257:

 Add missing INCREFs and re-indent returns to be consistent.
 Add \n\ for lines in docstring
 Add a pathetic test
 Add docs
parent c4f4ca91
......@@ -106,6 +106,19 @@ the process of completing its import (and the imports, if any,
triggered by that).
\end{funcdesc}
\begin{funcdesc}{acquire_lock}{}
Acquires the interpreter's import lock for the current thread. This lock
should be used by import hooks to ensure thread-safety when importing modules.
On platforms without threads, this function does nothing.
\versionadded{2.3}
\end{funcdesc}
\begin{funcdesc}{release_lock}{}
Release the interpreter's import lock.
On platforms without threads, this function does nothing.
\versionadded{2.3}
\end{funcdesc}
The following constants with integer values, defined in this module,
are used to indicate the search result of \function{find_module()}.
......
import imp
import unittest
from test_support import TestFailed
class ImpLock(unittest.TestCase):
# XXX this test is woefully inadequate, please fix me
def testLock(self):
LOOPS = 50
for i in range(LOOPS):
imp.acquire_lock()
for i in range(LOOPS):
imp.release_lock()
for i in range(LOOPS):
try:
imp.release_lock()
except RuntimeError:
pass
else:
raise TestFailed, \
"release_lock() without lock should raise RuntimeError"
if __name__ == "__main__":
test_support.run_unittest(ImpLock)
......@@ -305,7 +305,8 @@ imp_acquire_lock(PyObject *self, PyObject *args)
#ifdef WITH_THREAD
lock_import();
#endif
return Py_None;
Py_INCREF(Py_None);
return Py_None;
}
static PyObject *
......@@ -320,7 +321,8 @@ imp_release_lock(PyObject *self, PyObject *args)
return NULL;
}
#endif
return Py_None;
Py_INCREF(Py_None);
return Py_None;
}
/* Helper for sys */
......@@ -2778,8 +2780,9 @@ On platforms without threads, return 0.");
PyDoc_STRVAR(doc_acquire_lock,
"acquire_lock() -> None\n\
Acquires the interpreter's import lock for the current thread. This lock
should be used by import hooks to ensure thread-safety when importing modules.
Acquires the interpreter's import lock for the current thread.\n\
This lock should be used by import hooks to ensure thread-safety\n\
when importing modules.\n\
On platforms without threads, this function does nothing.");
PyDoc_STRVAR(doc_release_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