Add missing INCREFs and re-indent returns to be consistent.
Add \n\ for lines in docstring
Add a pathetic test
Add docs
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()}.
--- /dev/null
+
+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)
#ifdef WITH_THREAD
lock_import();
#endif
- return Py_None;
+ Py_INCREF(Py_None);
+ return Py_None;
}
static PyObject *
return NULL;
}
#endif
- return Py_None;
+ Py_INCREF(Py_None);
+ return Py_None;
}
/* Helper for sys */
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,