cpython/Misc
Tim Peters 5af0e41482 Bug #788520: Queue class has logic error when non-blocking
I don't agree it had a bug (see the report), so this is *not* a candidate
for backporting, but the docs were confusing and the Queue implementation
was old enough to vote.

Rewrote put/put_nowait/get/get_nowait from scratch, to use a pair of
Conditions (not_full and not_empty), sharing a common mutex.  The code
is 1/4 the size now, and 6.25x easier to understand.  For blocking
with timeout, we also get to reuse (indirectly) the tedious timeout
code from threading.Condition.  The Full and Empty exceptions raised
by non-blocking calls are now easy (instead of nearly impossible) to
explain truthfully:  Full is raised if and only if the Queue truly
is full when the non-blocking put call checks the queue size, and
similarly for Empty versus non-blocking get.

What I don't know is whether the new implementation is slower (or
faster) than the old one.  I don't really care.  Anyone who cares
a lot is encouraged to check that.
2004-07-12 00:45:14 +00:00
..
RPM 2.4a1 2004-07-08 06:01:42 +00:00
ACKS Add item 2004-07-10 21:21:55 +00:00
AIX-NOTES The fix to use . was incorporated 2003-06-08 02:25:17 +00:00
BeOS-NOTES Completely revamped BeOS notes, by Donn Cave (SF patch 411834). 2001-04-10 21:51:29 +00:00
BeOS-setup.py Don't build the pcre module any more 2004-06-02 17:42:56 +00:00
HISTORY Update URLs 2004-03-21 18:48:22 +00:00
NEWS Bug #788520: Queue class has logic error when non-blocking 2004-07-12 00:45:14 +00:00
NEWS.help Updated (2.3 OK now) 2003-01-03 03:29:58 +00:00
PURIFY.README Updated for Python 1.5, including my experiences with Purify on 1997-10-07 15:50:58 +00:00
Porting Patch #411138: Rename config.h to pyconfig.h. Closes bug #231774. 2001-07-26 13:41:06 +00:00
README Add some doc about using valgrind 2004-06-06 19:58:40 +00:00
README.valgrind Made the explanation more accurate; trimmed trailing whitespace; fixed 2004-07-07 02:46:03 +00:00
RFD Initial revision 1994-01-26 10:20:16 +00:00
SpecialBuilds.txt _Py_PrintReferenceAddresses(): also print the type name. In real use 2003-04-18 00:45:59 +00:00
cheatsheet SF patch #911431: robot.txt must be robots.txt 2004-03-13 20:27:23 +00:00
find_recursionlimit.py script that reports a fairly safe recursionlimit for a specific platform 2000-08-31 19:24:17 +00:00
gdbinit It would help if I deleted the old pystack! 2004-04-02 14:53:55 +00:00
indent.pro Some new files... 1994-09-14 14:06:46 +00:00
pymemcompat.h Fix grammatically inept comment. 2002-08-22 13:36:11 +00:00
python-mode.el Sync with python-mode project. Adds two changes: 2003-12-18 21:53:33 +00:00
python.man Remove -U from argument list. 2003-05-26 05:15:35 +00:00
setuid-prog.c correct bogus instructions 'ccoment out' -> 'uncomment' 1998-09-10 20:18:09 +00:00
valgrind-python.supp Add some doc about using valgrind 2004-06-06 19:58:40 +00:00
vgrindefs Add 'yield' as a keyword 2001-08-06 17:42:53 +00:00

README

Python Misc subdirectory
========================

This directory contains files that wouldn't fit in elsewhere.  Some
documents are only of historic importance.

Files found here
----------------

ACKS		Acknowledgements
AIX-NOTES	Notes for building Python on AIX
BeOS-NOTES	Notes for building on BeOS
BeOS-setup.py	setup.py replacement for BeOS, see BeOS-NOTES
cheatsheet	Quick summary of Python by Ken Manheimer
find_recursionlimit.py  Script to find a value for sys.maxrecursionlimit
gdbinit		Handy stuff to put in your .gdbinit file, if you use gdb
HISTORY		News from previous releases -- oldest last
HPUX-NOTES	Notes about dynamic loading under HP-UX
indent.pro	GNU indent profile approximating my C style
NEWS		News for this release (for some meaning of "this")
Porting		Mini-FAQ on porting to new platforms
PURIFY.README	Information for Purify users
pymemcompat.h	Memory interface compatibility file.
python.man	UNIX man page for the python interpreter
python-mode.el	Emacs mode for editing Python programs
README		The file you're reading now
README.valgrind	Information for Valgrind users, see valgrind-python.supp
RFD		Request For Discussion about a Python newsgroup
RPM		(Old) tools to build RPMs
SpecialBuilds.txt     Describes extra symbols you can set for debug builds
setuid-prog.c	C helper program for set-uid Python scripts
vgrindefs	Python configuration for vgrind (a generic pretty printer)
valgrind-python.supp	Valgrind suppression file, see README.valgrind