[Python-checkins] r71983 - in python/branches/py3k: Doc/c-api/init.rst Doc/c-api/structures.rst Doc/includes/email-alternative.py Doc/includes/email-dir.py Doc/includes/email-mime.py Doc/includes/email-simple.py

jeroen.ruigrok python-checkins at python.org
Sun Apr 26 22:25:45 CEST 2009


Author: jeroen.ruigrok
Date: Sun Apr 26 22:25:45 2009
New Revision: 71983

Log:
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.
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Doc/c-api/init.rst
   python/branches/py3k/Doc/c-api/structures.rst
   python/branches/py3k/Doc/includes/email-alternative.py
   python/branches/py3k/Doc/includes/email-dir.py
   python/branches/py3k/Doc/includes/email-mime.py
   python/branches/py3k/Doc/includes/email-simple.py

Modified: python/branches/py3k/Doc/c-api/init.rst
==============================================================================
--- python/branches/py3k/Doc/c-api/init.rst	(original)
+++ python/branches/py3k/Doc/c-api/init.rst	Sun Apr 26 22:25:45 2009
@@ -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

Modified: python/branches/py3k/Doc/c-api/structures.rst
==============================================================================
--- python/branches/py3k/Doc/c-api/structures.rst	(original)
+++ python/branches/py3k/Doc/c-api/structures.rst	Sun Apr 26 22:25:45 2009
@@ -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

Modified: python/branches/py3k/Doc/includes/email-alternative.py
==============================================================================
--- python/branches/py3k/Doc/includes/email-alternative.py	(original)
+++ python/branches/py3k/Doc/includes/email-alternative.py	Sun Apr 26 22:25:45 2009
@@ -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()

Modified: python/branches/py3k/Doc/includes/email-dir.py
==============================================================================
--- python/branches/py3k/Doc/includes/email-dir.py	(original)
+++ python/branches/py3k/Doc/includes/email-dir.py	Sun Apr 26 22:25:45 2009
@@ -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__':

Modified: python/branches/py3k/Doc/includes/email-mime.py
==============================================================================
--- python/branches/py3k/Doc/includes/email-mime.py	(original)
+++ python/branches/py3k/Doc/includes/email-mime.py	Sun Apr 26 22:25:45 2009
@@ -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()

Modified: python/branches/py3k/Doc/includes/email-simple.py
==============================================================================
--- python/branches/py3k/Doc/includes/email-simple.py	(original)
+++ python/branches/py3k/Doc/includes/email-simple.py	Sun Apr 26 22:25:45 2009
@@ -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()


More information about the Python-checkins mailing list