ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev_select.c
(Generate patch)

Comparing libev/ev_select.c (file contents):
Revision 1.52 by root, Wed Feb 16 08:02:50 2011 UTC vs.
Revision 1.56 by root, Thu Feb 18 04:48:05 2016 UTC

1/* 1/*
2 * libev select fd activity backend 2 * libev select fd activity backend
3 * 3 *
4 * Copyright (c) 2007,2008,2009,2010 Marc Alexander Lehmann <libev@schmorp.de> 4 * Copyright (c) 2007,2008,2009,2010,2011 Marc Alexander Lehmann <libev@schmorp.de>
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without modifica- 7 * Redistribution and use in source and binary forms, with or without modifica-
8 * tion, are permitted provided that the following conditions are met: 8 * tion, are permitted provided that the following conditions are met:
9 * 9 *
193 * we also get EINVAL when the timeout is invalid, but we ignore this case here 193 * we also get EINVAL when the timeout is invalid, but we ignore this case here
194 * and assume that EINVAL always means: you have to wait manually. 194 * and assume that EINVAL always means: you have to wait manually.
195 */ 195 */
196 if (errno == EINVAL) 196 if (errno == EINVAL)
197 { 197 {
198 ev_sleep (timeout); 198 if (timeout)
199 {
200 unsigned long ms = timeout * 1e3;
201 Sleep (ms ? ms : 1);
202 }
203
199 return; 204 return;
200 } 205 }
201 #endif 206 #endif
202 207
203 if (errno == EBADF) 208 if (errno == EBADF)
264 } 269 }
265 270
266#endif 271#endif
267} 272}
268 273
269int inline_size 274inline_size
275int
270select_init (EV_P_ int flags) 276select_init (EV_P_ int flags)
271{ 277{
272 backend_fudge = 0.; /* posix says this is zero */ 278 backend_mintime = 1e-6;
273 backend_modify = select_modify; 279 backend_modify = select_modify;
274 backend_poll = select_poll; 280 backend_poll = select_poll;
275 281
276#if EV_SELECT_USE_FD_SET 282#if EV_SELECT_USE_FD_SET
277 vec_ri = ev_malloc (sizeof (fd_set)); FD_ZERO ((fd_set *)vec_ri); 283 vec_ri = ev_malloc (sizeof (fd_set)); FD_ZERO ((fd_set *)vec_ri);
278 vec_ro = ev_malloc (sizeof (fd_set)); 284 vec_ro = ev_malloc (sizeof (fd_set));
279 vec_wi = ev_malloc (sizeof (fd_set)); FD_ZERO ((fd_set *)vec_wi); 285 vec_wi = ev_malloc (sizeof (fd_set)); FD_ZERO ((fd_set *)vec_wi);
293#endif 299#endif
294 300
295 return EVBACKEND_SELECT; 301 return EVBACKEND_SELECT;
296} 302}
297 303
298void inline_size 304inline_size
305void
299select_destroy (EV_P) 306select_destroy (EV_P)
300{ 307{
301 ev_free (vec_ri); 308 ev_free (vec_ri);
302 ev_free (vec_ro); 309 ev_free (vec_ro);
303 ev_free (vec_wi); 310 ev_free (vec_wi);
305 #ifdef _WIN32 312 #ifdef _WIN32
306 ev_free (vec_eo); 313 ev_free (vec_eo);
307 #endif 314 #endif
308} 315}
309 316
310

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines