[Patches] [ python-Patches-760257 ] add socket.timeout exception

SourceForge.net noreply@sourceforge.net
Sat, 28 Jun 2003 20:04:45 -0700


Patches item #760257, was opened at 2003-06-24 23:55
Message generated for change (Comment added) made by rhettinger
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=760257&group_id=5470

Category: Modules
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Bob Halley (rthalley)
Assigned to: Raymond Hettinger (rhettinger)
Summary: add socket.timeout exception

Initial Comment:
Here's a patch for bug 758239.  It adds a
socket.timeout exception to the socket module, and
raises that exception whenever a timeout occurs.

I have tried to use a light hand, making only
(hopefully) correctness-preserving edits as opposed to
attempting any more radical restructuring of the way
internal_select() is used.

The diff is against the CVS current version of
socketmodule.c.

I have tested this by hand on my x86 Red Hat 9 system,
and it works correctly.  I have also done "make test"
and had no failures related to the socket module
(though I too am seeing a failure of test_strptime).

I do not have a Windows build environment available to
me, so I have not tested my changes on Windows.

/Bob


----------------------------------------------------------------------

>Comment By: Raymond Hettinger (rhettinger)
Date: 2003-06-28 22:04

Message:
Logged In: YES 
user_id=80475

Guido has given me the go ahead to put it in eventhough we 
haven't had a chance for thorough review.  I've looked at the 
code again and agree it cannot be further simplified -- that 
was just wishful thinking.

The best thing to do right now is for you to desk check your 
patch one more time.  I'll work on the doc update and 
newsitem.  After your desk check, a couple of unittests would 
be very helpful.



----------------------------------------------------------------------

Comment By: Bob Halley (rthalley)
Date: 2003-06-28 21:58

Message:
Logged In: YES 
user_id=671513

I don't think the patch can be much simpler than it is.  We
can't raise the exception inside of internal_select(),
because we don't have the interpreter lock then.

It's a good thing that we do not attempt the I/O after we
know we have a timeout, since we don't want to actually do
the I/O have it succeed after all, and then return "timeout".

The other changes make sure result variables from the I/O
are always initialized, to keep the compiler from issuing
warnings.  (There's no chance we'd actually use one of those
variables in the timeout case, but some compilers can't
figure that out.)

I'll recheck things and post a followup message.  I'll see
what I can do about docs + unittests, though timezones
aren't working in our favor at the moment (I'm in Australia
right now).

----------------------------------------------------------------------

Comment By: Raymond Hettinger (rhettinger)
Date: 2003-06-28 15:28

Message:
Logged In: YES 
user_id=80475

If you're up to it, please also submit a patch for the docs and 
unittests.  The next beta goes out in the morning so we only 
have a short time to get this done and make it perfect.

Please also do a second desk check of your work, it is 
important that we don't break anything in this critical 
module.

----------------------------------------------------------------------

Comment By: Raymond Hettinger (rhettinger)
Date: 2003-06-28 15:21

Message:
Logged In: YES 
user_id=80475

On a separate note, can you email to me the traceback from 
the failure on strptime?  I would like to fix it but it won't fail 
for me on Windows.

----------------------------------------------------------------------

Comment By: Raymond Hettinger (rhettinger)
Date: 2003-06-28 15:19

Message:
Logged In: YES 
user_id=80475

I haven't yet been able to review this in detail.
Is a simpler implementation possible (changing socket.error 
to socket.timeout and changing nothing else)?

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=760257&group_id=5470