mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
91c7b7c465
commit
3d31020aeb
9 changed files with 65 additions and 30 deletions
|
|
@ -11,6 +11,7 @@
|
|||
*/
|
||||
|
||||
#include "ruby.h"
|
||||
#include "rubysig.h"
|
||||
#include <fcntl.h>
|
||||
#include <process.h>
|
||||
#include <sys/stat.h>
|
||||
|
|
@ -1823,6 +1824,7 @@ myselect (int nfds, fd_set *rd, fd_set *wr, fd_set *ex,
|
|||
fd_set file_rd;
|
||||
fd_set file_wr;
|
||||
int file_nfds;
|
||||
int trap_immediate = rb_trap_immediate;
|
||||
|
||||
if (!NtSocketsInitialized++) {
|
||||
StartSockets();
|
||||
|
|
@ -1841,6 +1843,8 @@ myselect (int nfds, fd_set *rd, fd_set *wr, fd_set *ex,
|
|||
if (wr) *wr = file_wr;
|
||||
return file_nfds;
|
||||
}
|
||||
if (trap_immediate)
|
||||
TRAP_END;
|
||||
if ((r = select (nfds, rd, wr, ex, timeout)) == SOCKET_ERROR) {
|
||||
errno = WSAGetLastError();
|
||||
switch (errno) {
|
||||
|
|
@ -1849,6 +1853,8 @@ myselect (int nfds, fd_set *rd, fd_set *wr, fd_set *ex,
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (trap_immediate)
|
||||
TRAP_BEG;
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
@ -1888,12 +1894,17 @@ SOCKET
|
|||
myaccept (SOCKET s, struct sockaddr *addr, int *addrlen)
|
||||
{
|
||||
SOCKET r;
|
||||
int trap_immediate = rb_trap_immediate;
|
||||
|
||||
if (!NtSocketsInitialized++) {
|
||||
StartSockets();
|
||||
}
|
||||
if (trap_immediate)
|
||||
TRAP_END;
|
||||
if ((r = accept (TO_SOCKET(s), addr, addrlen)) == INVALID_SOCKET)
|
||||
errno = WSAGetLastError();
|
||||
if (trap_immediate)
|
||||
TRAP_BEG;
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue