Fix from the Madusa mailing list:

http://groups.yahoo.com/group/medusa/message/333

It's clear that Medusa should not be checking for an empty buffer
via "buf is ''".  The patch merely changes "is" to "==".  However,
there's a mystery here all the same:  Python attempts to store null
strings uniquely, so it's unclear why "buf is ''" ever returned
false when buf actually was empty.  *Some* string operations produce
non-unique null strings, e.g.

>>> "abc"*0 is "abc"*0
0
>>>

but they're rare, and I don't see any such operations in asynchat.
This commit is contained in:
Tim Peters 2001-04-08 07:23:44 +00:00
parent cfc21fcf48
commit 6fd7120616
1 changed files with 1 additions and 1 deletions

View File

@ -165,7 +165,7 @@ class async_chat (asyncore.dispatcher):
# return len(self.ac_out_buffer) or len(self.producer_fifo) or (not self.connected)
# this is about twice as fast, though not as clear.
return not (
(self.ac_out_buffer is '') and
(self.ac_out_buffer == '') and
self.producer_fifo.is_empty() and
self.connected
)