Merged revisions 71874,71882,71890 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r71874 | jeroen.ruigrok | 2009-04-25 13:59:09 +0200 (za, 25 apr 2009) | 2 lines
First attempt to document PyObject_HEAD_INIT and PyVarObject_HEAD_INIT.
........
r71882 | jeroen.ruigrok | 2009-04-25 14:49:10 +0200 (za, 25 apr 2009) | 3 lines
Issue #4239: adjust email examples not to use connect() and terminate with
quit() and not close().
........
r71890 | jeroen.ruigrok | 2009-04-25 15:07:40 +0200 (za, 25 apr 2009) | 3 lines
Rewrite a sentence to be more in line with the rest of the documentation with
regard to person and audience.
........
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index d3a2a3b..ab4734f 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -489,13 +489,13 @@
global variable). Conversely, when acquiring the lock and restoring the thread
state, the lock must be acquired before storing the thread state pointer.
-Why am I going on with so much detail about this? Because when threads are
-created from C, they don't have the global interpreter lock, nor is there a
-thread state data structure for them. Such threads must bootstrap themselves
-into existence, by first creating a thread state data structure, then acquiring
-the lock, and finally storing their thread state pointer, before they can start
-using the Python/C API. When they are done, they should reset the thread state
-pointer, release the lock, and finally free their thread state data structure.
+It is important to note that when threads are created from C, they don't have
+the global interpreter lock, nor is there a thread state data structure for
+them. Such threads must bootstrap themselves into existence, by first
+creating a thread state data structure, then acquiring the lock, and finally
+storing their thread state pointer, before they can start using the Python/C
+API. When they are done, they should reset the thread state pointer, release
+the lock, and finally free their thread state data structure.
Threads can take advantage of the :cfunc:`PyGILState_\*` functions to do all of
the above automatically. The typical idiom for calling into Python from a C
diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst
index b654eb7..7048968 100644
--- a/Doc/c-api/structures.rst
+++ b/Doc/c-api/structures.rst
@@ -69,7 +69,24 @@
Note that :cmacro:`PyObject_HEAD` is part of the expansion, and that its own
expansion varies depending on the definition of :cmacro:`Py_TRACE_REFS`.
-.. cmacro:: PyObject_HEAD_INIT
+
+.. cmacro:: PyObject_HEAD_INIT(type)
+
+ This is a macro which expands to initialization values for a new
+ :ctype:`PyObject` type. This macro expands to::
+
+ _PyObject_EXTRA_INIT
+ 1, type,
+
+
+.. cmacro:: PyVarObject_HEAD_INIT(type, size)
+
+ This is a macro which expands to initialization values for a new
+ :ctype:`PyVarObject` type, including the :attr:`ob_size` field.
+ This macro expands to::
+
+ _PyObject_EXTRA_INIT
+ 1, type, size,
.. ctype:: PyCFunction
diff --git a/Doc/includes/email-alternative.py b/Doc/includes/email-alternative.py
index d941323..82e3ffa 100644
--- a/Doc/includes/email-alternative.py
+++ b/Doc/includes/email-alternative.py
@@ -45,4 +45,4 @@
# sendmail function takes 3 arguments: sender's address, recipient's address
# and message to send - here it is sent as one string.
s.sendmail(me, you, msg.as_string())
-s.close()
+s.quit()
diff --git a/Doc/includes/email-dir.py b/Doc/includes/email-dir.py
index c04f57d..e67de61 100644
--- a/Doc/includes/email-dir.py
+++ b/Doc/includes/email-dir.py
@@ -106,9 +106,8 @@
fp.close()
else:
s = smtplib.SMTP()
- s.connect()
s.sendmail(opts.sender, opts.recipients, composed)
- s.close()
+ s.quit()
if __name__ == '__main__':
diff --git a/Doc/includes/email-mime.py b/Doc/includes/email-mime.py
index 5097253..f64df83 100644
--- a/Doc/includes/email-mime.py
+++ b/Doc/includes/email-mime.py
@@ -27,6 +27,5 @@
# Send the email via our own SMTP server.
s = smtplib.SMTP()
-s.connect()
s.sendmail(me, family, msg.as_string())
-s.close()
+s.quit()
diff --git a/Doc/includes/email-simple.py b/Doc/includes/email-simple.py
index 44152a4..689511e 100644
--- a/Doc/includes/email-simple.py
+++ b/Doc/includes/email-simple.py
@@ -20,6 +20,5 @@
# Send the message via our own SMTP server, but don't include the
# envelope header.
s = smtplib.SMTP()
-s.connect()
s.sendmail(me, [you], msg.as_string())
-s.close()
+s.quit()