Ruby
1.9.3p429(2013-05-15revision40747)
Main Page
Modules
Data Structures
Files
File List
Globals
ext
-test-
win32
fd_setsize
fd_setsize.c
Go to the documentation of this file.
1
#undef FD_SETSIZE
2
/* redefine smaller size then default 64 */
3
#define FD_SETSIZE 32
4
#include <ruby.h>
5
6
static
VALUE
7
test_select
(
VALUE
self
)
8
{
9
int
sd = socket(AF_INET, SOCK_DGRAM, 0);
10
struct
timeval
zero;
11
fd_set read;
12
fd_set write;
13
fd_set error;
14
15
zero.
tv_sec
= 0;
16
zero.
tv_usec
= 0;
17
18
FD_ZERO(&read);
19
FD_ZERO(&write);
20
FD_ZERO(&error);
21
22
FD_SET
(sd, &read);
23
FD_SET
(sd, &write);
24
FD_SET
(sd, &error);
25
26
select(sd+1, &read, &write, &error, &zero);
27
28
return
Qtrue
;
29
}
30
31
static
VALUE
32
test_fdset
(
VALUE
self
)
33
{
34
int
i
;
35
fd_set
set
;
36
37
FD_ZERO(&
set
);
38
39
for
(i = 0; i <
FD_SETSIZE
* 2; i++) {
40
int
sd = socket(AF_INET, SOCK_DGRAM, 0);
41
FD_SET
(sd, &
set
);
42
if
(
set
.fd_count > FD_SETSIZE) {
43
return
Qfalse
;
44
}
45
}
46
return
Qtrue
;
47
}
48
49
void
50
Init_fd_setsize
(
void
)
51
{
52
VALUE
m =
rb_define_module_under
(
rb_define_module
(
"Bug"
),
"Win32"
);
53
rb_define_module_function
(m,
"test_select"
,
test_select
, 0);
54
rb_define_module_function
(m,
"test_fdset"
,
test_fdset
, 0);
55
}
56
Generated on Thu May 23 2013 20:33:00 for Ruby by
1.8.3