• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/iserver/libevent-1.4.14b-stable/

Lines Matching refs:sop

97 static int select_resize(struct selectop *sop, int fdsz);
102 struct selectop *sop;
108 if (!(sop = calloc(1, sizeof(struct selectop))))
111 select_resize(sop, howmany(32 + 1, NFDBITS)*sizeof(fd_mask));
115 return (sop);
120 check_selectop(struct selectop *sop)
123 for (i = 0; i <= sop->event_fds; ++i) {
124 if (FD_ISSET(i, sop->event_readset_in)) {
125 assert(sop->event_r_by_fd[i]);
126 assert(sop->event_r_by_fd[i]->ev_events & EV_READ);
127 assert(sop->event_r_by_fd[i]->ev_fd == i);
129 assert(! sop->event_r_by_fd[i]);
131 if (FD_ISSET(i, sop->event_writeset_in)) {
132 assert(sop->event_w_by_fd[i]);
133 assert(sop->event_w_by_fd[i]->ev_events & EV_WRITE);
134 assert(sop->event_w_by_fd[i]->ev_fd == i);
136 assert(! sop->event_w_by_fd[i]);
142 #define check_selectop(sop) do { (void) sop; } while (0)
149 struct selectop *sop = arg;
151 check_selectop(sop);
153 memcpy(sop->event_readset_out, sop->event_readset_in,
154 sop->event_fdsz);
155 memcpy(sop->event_writeset_out, sop->event_writeset_in,
156 sop->event_fdsz);
158 res = select(sop->event_fds + 1, sop->event_readset_out,
159 sop->event_writeset_out, NULL, tv);
161 check_selectop(sop);
177 check_selectop(sop);
178 i = random() % (sop->event_fds+1);
179 for (j = 0; j <= sop->event_fds; ++j) {
181 if (++i >= sop->event_fds+1)
185 if (FD_ISSET(i, sop->event_readset_out)) {
186 r_ev = sop->event_r_by_fd[i];
189 if (FD_ISSET(i, sop->event_writeset_out)) {
190 w_ev = sop->event_w_by_fd[i];
200 check_selectop(sop);
207 select_resize(struct selectop *sop, int fdsz)
219 n_events_old = (sop->event_fdsz/sizeof(fd_mask)) * NFDBITS;
221 if (sop->event_readset_in)
222 check_selectop(sop);
224 if ((readset_in = realloc(sop->event_readset_in, fdsz)) == NULL)
226 sop->event_readset_in = readset_in;
227 if ((readset_out = realloc(sop->event_readset_out, fdsz)) == NULL)
229 sop->event_readset_out = readset_out;
230 if ((writeset_in = realloc(sop->event_writeset_in, fdsz)) == NULL)
232 sop->event_writeset_in = writeset_in;
233 if ((writeset_out = realloc(sop->event_writeset_out, fdsz)) == NULL)
235 sop->event_writeset_out = writeset_out;
236 if ((r_by_fd = realloc(sop->event_r_by_fd,
239 sop->event_r_by_fd = r_by_fd;
240 if ((w_by_fd = realloc(sop->event_w_by_fd,
243 sop->event_w_by_fd = w_by_fd;
245 memset((char *)sop->event_readset_in + sop->event_fdsz, 0,
246 fdsz - sop->event_fdsz);
247 memset((char *)sop->event_writeset_in + sop->event_fdsz, 0,
248 fdsz - sop->event_fdsz);
249 memset(sop->event_r_by_fd + n_events_old, 0,
251 memset(sop->event_w_by_fd + n_events_old, 0,
254 sop->event_fdsz = fdsz;
255 check_selectop(sop);
268 struct selectop *sop = arg;
273 check_selectop(sop);
278 if (sop->event_fds < ev->ev_fd) {
279 int fdsz = sop->event_fdsz;
288 if (fdsz != sop->event_fdsz) {
289 if (select_resize(sop, fdsz)) {
290 check_selectop(sop);
295 sop->event_fds = ev->ev_fd;
299 FD_SET(ev->ev_fd, sop->event_readset_in);
300 sop->event_r_by_fd[ev->ev_fd] = ev;
303 FD_SET(ev->ev_fd, sop->event_writeset_in);
304 sop->event_w_by_fd[ev->ev_fd] = ev;
306 check_selectop(sop);
318 struct selectop *sop = arg;
320 check_selectop(sop);
324 if (sop->event_fds < ev->ev_fd) {
325 check_selectop(sop);
330 FD_CLR(ev->ev_fd, sop->event_readset_in);
331 sop->event_r_by_fd[ev->ev_fd] = NULL;
335 FD_CLR(ev->ev_fd, sop->event_writeset_in);
336 sop->event_w_by_fd[ev->ev_fd] = NULL;
339 check_selectop(sop);
346 struct selectop *sop = arg;
349 if (sop->event_readset_in)
350 free(sop->event_readset_in);
351 if (sop->event_writeset_in)
352 free(sop->event_writeset_in);
353 if (sop->event_readset_out)
354 free(sop->event_readset_out);
355 if (sop->event_writeset_out)
356 free(sop->event_writeset_out);
357 if (sop->event_r_by_fd)
358 free(sop->event_r_by_fd);
359 if (sop->event_w_by_fd)
360 free(sop->event_w_by_fd);
362 memset(sop, 0, sizeof(struct selectop));
363 free(sop);