raises the same exception.
-.. method:: Thread.getName()
- Thread.setName()
-
- Old API for :attr:`~Thread.name`.
-
-
.. attribute:: Thread.name
A string used for identification purposes only. It has no semantics.
constructor.
+.. method:: Thread.getName()
+ Thread.setName()
+
+ Old getter/setter API for :attr:`~Thread.name`; use it directly as a property
+ instead.
+
+
.. attribute:: Thread.ident
The 'thread identifier' of this thread or ``None`` if the thread has not been
returns a list of all alive threads.
-.. method:: Thread.isDaemon()
- Thread.setDaemon()
-
- Old API for :attr:`~Thread.daemon`.
-
-
.. attribute:: Thread.daemon
The thread's daemon flag. This must be set before :meth:`start` is called,
The entire Python program exits when no alive non-daemon threads are left.
+.. method:: Thread.isDaemon()
+ Thread.setDaemon()
+
+ Old getter/setter API for :attr:`~Thread.daemon`; use it directly as a
+ property instead.
+
+
.. _lock-objects:
Lock Objects
This is a bit of a hack: when the shared library is loaded,
the module name is "package.module", but the module calls
- Py_InitModule*() with just "module" for the name. The shared
+ PyModule_Create*() with just "module" for the name. The shared
library loader squirrels away the true name of the module in
- _Py_PackageContext, and Py_InitModule*() will substitute this
+ _Py_PackageContext, and PyModule_Create*() will substitute this
(if the name actually matches).
*/
if (_Py_PackageContext != NULL) {
{NULL, NULL}
};
+static struct PyModuleDef examplemodule = {
+ PyModuleDef_HEAD_INIT,
+ "example",
+ "example module doc string",
+ -1,
+ example_methods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+
PyMODINIT_FUNC
-initexample(void)
+PyInit_example(void)
{
- Py_InitModule("example", example_methods);
+ return PyModule_Create(&examplemodule);
}