Lines Matching refs:sop

106 static int select_resize(struct selectop *sop, int fdsz);
107 static void select_free_selectop(struct selectop *sop);
112 struct selectop *sop;
114 if (!(sop = mm_calloc(1, sizeof(struct selectop))))
117 if (select_resize(sop, SELECT_ALLOC_SIZE(32 + 1))) {
118 select_free_selectop(sop);
126 return (sop);
131 check_selectop(struct selectop *sop)
136 #define check_selectop(sop) do { (void) sop; } while (0)
143 struct selectop *sop = base->evbase;
145 check_selectop(sop);
146 if (sop->resize_out_sets) {
148 size_t sz = sop->event_fdsz;
149 if (!(readset_out = mm_realloc(sop->event_readset_out, sz)))
151 sop->event_readset_out = readset_out;
152 if (!(writeset_out = mm_realloc(sop->event_writeset_out, sz))) {
159 sop->event_writeset_out = writeset_out;
160 sop->resize_out_sets = 0;
163 memcpy(sop->event_readset_out, sop->event_readset_in,
164 sop->event_fdsz);
165 memcpy(sop->event_writeset_out, sop->event_writeset_in,
166 sop->event_fdsz);
168 nfds = sop->event_fds+1;
172 res = select(nfds, sop->event_readset_out,
173 sop->event_writeset_out, NULL, tv);
177 check_selectop(sop);
190 check_selectop(sop);
196 if (FD_ISSET(i, sop->event_readset_out))
198 if (FD_ISSET(i, sop->event_writeset_out))
206 check_selectop(sop);
212 select_resize(struct selectop *sop, int fdsz)
217 if (sop->event_readset_in)
218 check_selectop(sop);
220 if ((readset_in = mm_realloc(sop->event_readset_in, fdsz)) == NULL)
222 sop->event_readset_in = readset_in;
223 if ((writeset_in = mm_realloc(sop->event_writeset_in, fdsz)) == NULL) {
232 sop->event_writeset_in = writeset_in;
233 sop->resize_out_sets = 1;
235 memset((char *)sop->event_readset_in + sop->event_fdsz, 0,
236 fdsz - sop->event_fdsz);
237 memset((char *)sop->event_writeset_in + sop->event_fdsz, 0,
238 fdsz - sop->event_fdsz);
240 sop->event_fdsz = fdsz;
241 check_selectop(sop);
254 struct selectop *sop = base->evbase;
258 check_selectop(sop);
263 if (sop->event_fds < fd) {
264 int fdsz = sop->event_fdsz;
275 if (fdsz != sop->event_fdsz) {
276 if (select_resize(sop, fdsz)) {
277 check_selectop(sop);
282 sop->event_fds = fd;
286 FD_SET(fd, sop->event_readset_in);
288 FD_SET(fd, sop->event_writeset_in);
289 check_selectop(sop);
301 struct selectop *sop = base->evbase;
305 check_selectop(sop);
307 if (sop->event_fds < fd) {
308 check_selectop(sop);
313 FD_CLR(fd, sop->event_readset_in);
316 FD_CLR(fd, sop->event_writeset_in);
318 check_selectop(sop);
323 select_free_selectop(struct selectop *sop)
325 if (sop->event_readset_in)
326 mm_free(sop->event_readset_in);
327 if (sop->event_writeset_in)
328 mm_free(sop->event_writeset_in);
329 if (sop->event_readset_out)
330 mm_free(sop->event_readset_out);
331 if (sop->event_writeset_out)
332 mm_free(sop->event_writeset_out);
334 memset(sop, 0, sizeof(struct selectop));
335 mm_free(sop);