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
This commit is contained in:
Neal Norwitz 2003-02-12 23:02:21 +00:00
parent c4f4ca91e1
commit 2294c0d4ec
3 changed files with 46 additions and 4 deletions

View File

@ -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()}.

26
Lib/test/test_imp.py Normal file
View File

@ -0,0 +1,26 @@
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)

View File

@ -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,