00270 {
00271 fd_set read_descs;
00272 fd_set write_descs;
00273 fd_set except_descs;
00274
struct timeval stime;
00275
int ready_descriptors;
00276
int max_fd;
00277
struct timeval *pTimeout;
00278
00279 FD_ZERO (&read_descs);
00280 FD_ZERO (&write_descs);
00281 FD_ZERO (&except_descs);
00282
00283 assert (pArray != (
struct pollfd *) NULL);
00284
00285
00286
00287 max_fd = map_poll_spec (pArray, n_fds,
00288 &read_descs, &write_descs, &except_descs);
00289
00290
00291
00292 pTimeout = map_timeout (timeout, &stime);
00293
00294
00295
00296 ready_descriptors = select (max_fd + 1, &read_descs, &write_descs,
00297 &except_descs, pTimeout);
00298
00299
if (ready_descriptors >= 0)
00300 {
00301 map_select_results (pArray, n_fds,
00302 &read_descs, &write_descs, &except_descs);
00303 }
00304
00305
return ready_descriptors;
00306 }