Message155748
| Author |
sbt |
| Recipients |
sbt |
| Date |
2012年03月14日.12:59:45 |
| SpamBayes Score |
1.3412695e-08 |
| Marked as misclassified |
No |
| Message-id |
<1331729986.5.0.388536898962.issue14300@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
According to Microsoft's documentation sockets created using socket() have the
overlapped attribute, but sockets created with WSASocket() do not unless you
pass the WSA_FLAG_OVERLAPPED flag. The documentation for WSADuplicateSocket()
says
If the source process uses the socket function to create the socket, the
destination process must pass the WSA_FLAG_OVERLAPPED flag to its WSASocket
function call.
This means that dup_socket() in socketmodule.c should use
return WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
FROM_PROTOCOL_INFO, &info, 0, WSA_FLAG_OVERLAPPED);
instead of
return WSASocket(FROM_PROTOCOL_INFO, FROM_PROTOCOL_INFO,
FROM_PROTOCOL_INFO, &info, 0, 0);
(On Windows, the new multiprocessing.connection.wait() function depends on
the overlapped attribute, although it is primarily intended for use with pipe
connections not sockets.)
Patch attached. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2012年03月14日 12:59:46 | sbt | set | recipients:
+ sbt |
| 2012年03月14日 12:59:46 | sbt | set | messageid: <1331729986.5.0.388536898962.issue14300@psf.upfronthosting.co.za> |
| 2012年03月14日 12:59:45 | sbt | link | issue14300 messages |
| 2012年03月14日 12:59:45 | sbt | create |
|