14 {
16 int i, n, nchanged;
17 int fd, rc;
18 struct pollfd fds[20];
19 struct timespec ts;
20
21 memset(fds, 0, sizeof(fds));
22
23 n = 0;
26 if ((size_t) n >= sizeof(fds) / sizeof(struct pollfd)) {
27 return -1;
28 }
29
30
34
37
38 fds[n].fd = fd;
40 fds[n].revents = 0;
41
43
44 n++;
45 }
46
47
48 memset(&ts, 0, sizeof(ts));
49 ts.tv_nsec = (timeout % 1000) * 1000000;
50 ts.tv_sec = timeout / 1000;
51
52
53 rc = poll(fds, n, timeout);
54 if (rc < 0) {
56 }
57
59 nchanged = 0;
60 for (i = 0; i < n; i++) {
61
62
63 if (fds[i].revents) {
66 nchanged++;
67 }
68
75 }
76
77
78
79 return 1;
80}
DUK_EXTERNAL void duk_enum(duk_context *ctx, duk_idx_t obj_index, duk_uint_t enum_flags)
DUK_EXTERNAL const char * duk_push_string(duk_context *ctx, const char *str)
DUK_EXTERNAL duk_bool_t duk_put_prop_index(duk_context *ctx, duk_idx_t obj_idx, duk_uarridx_t arr_idx)
DUK_EXTERNAL duk_bool_t duk_next(duk_context *ctx, duk_idx_t enum_index, duk_bool_t get_value)
DUK_EXTERNAL void duk_push_int(duk_context *ctx, duk_int_t val)
DUK_EXTERNAL void duk_dup_top(duk_context *ctx)
DUK_EXTERNAL duk_bool_t duk_get_prop(duk_context *ctx, duk_idx_t obj_index)
DUK_EXTERNAL void duk_pop_n(duk_context *ctx, duk_idx_t count)
DUK_EXTERNAL void duk_pop(duk_context *ctx)
DUK_EXTERNAL duk_idx_t duk_push_array(duk_context *ctx)
DUK_EXTERNAL duk_int_t duk_to_int(duk_context *ctx, duk_idx_t index)
DUK_EXTERNAL duk_bool_t duk_put_prop(duk_context *ctx, duk_idx_t obj_idx)