| line |
true |
false |
branch |
|
80
|
0 |
26 |
if (!parse_actions(action_spec, spec_count, self->actions, &n_actions, ((char*)self) + len_before_aux, &aux_len)) |
|
105
|
12 |
45 |
if (!resume) |
|
107
|
12 |
57 |
while (self->cur_action < self->action_count) { |
|
108
|
0 |
12 |
if (!execute_action(self->actions + self->cur_action, resume, &now_ts, self)) |
|
117
|
14 |
0 |
if (!self->actions_av) { |
|
120
|
18 |
14 |
for (i= 0; i < self->action_count; i++) { |
|
134
|
14 |
12 |
if (sa->actions_av) |
|
147
|
13 |
0 |
if (array && SvTYPE(array) == SVt_PVAV) |
|
|
0 |
13 |
if (array && SvTYPE(array) == SVt_PVAV) |
|
149
|
13 |
0 |
else if (array && SvROK(array) && SvTYPE(SvRV(array)) == SVt_PVAV) |
|
|
13 |
0 |
else if (array && SvROK(array) && SvTYPE(SvRV(array)) == SVt_PVAV) |
|
|
13 |
0 |
else if (array && SvROK(array) && SvTYPE(SvRV(array)) == SVt_PVAV) |
|
156
|
1 |
12 |
if (!vec) { |
|
157
|
1 |
0 |
if (n == 0) /* don't return a NULL for an empty array, but doesn't need to be a real pointer */ |
|
162
|
0 |
0 |
Newx(vec, n, SV*); |
|
164
|
0 |
0 |
for (i= 0; i < n; i++) { |
|
166
|
0 |
0 |
vec[i]= el? *el : NULL; |
|
170
|
13 |
0 |
if (len_out) *len_out= n; |
|
180
|
26 |
0 |
if (mg->mg_ptr) { |
|
216
|
0 |
76 |
if (!sv_isobject(obj)) { |
|
217
|
0 |
0 |
if (flags & OR_DIE) |
|
222
|
62 |
14 |
if (SvMAGICAL(sv)) { |
|
224
|
62 |
0 |
if ((magic= mg_findext(sv, PERL_MAGIC_ext, &socketalarm_magic_vt))) |
|
228
|
0 |
14 |
if (flags & OR_DIE) |
|
235
|
0 |
26 |
if (sa->owner) |
|
253
|
0 |
12 |
if (!sa) |
|
256
|
0 |
12 |
if (sa->owner) |
|
268
|
72 |
0 |
SvUPGRADE(name, SVt_PVNV); |
|
295
|
0 |
14 |
if (!sv_isobject(self)) |
|
297
|
0 |
14 |
if ((sa= get_magic_socketalarm(self, 0))) |
|
299
|
14 |
0 |
if (!(sock_fd >= 0 && fstat(sock_fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode))) |
|
|
14 |
0 |
if (!(sock_fd >= 0 && fstat(sock_fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode))) |
|
|
0 |
14 |
if (!(sock_fd >= 0 && fstat(sock_fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode))) |
|
301
|
14 |
0 |
if (eventmask_sv && SvOK(eventmask_sv)) |
|
|
14 |
0 |
if (eventmask_sv && SvOK(eventmask_sv)) |
|
303
|
14 |
0 |
if (actions_sv && SvOK(actions_sv)) { |
|
|
13 |
1 |
if (actions_sv && SvOK(actions_sv)) { |
|
305
|
0 |
13 |
if (!action_list) |
|
316
|
0 |
14 |
RETVAL= alarm->watch_fd; |
|
324
|
0 |
14 |
RETVAL= alarm->event_mask; |
|
341
|
0 |
1 |
RETVAL= alarm->action_count; |
|
377
|
0 |
14 |
sv_catpvf(out, "event mask:%s%s\n", |
|
|
0 |
14 |
sv_catpvf(out, "event mask:%s%s\n", |
|
382
|
18 |
14 |
for (i= 0; i < alarm->action_count; i++) { |
|
408
|
12 |
0 |
if (!(sock_fd >= 0 && fstat(sock_fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode))) |
|
|
12 |
0 |
if (!(sock_fd >= 0 && fstat(sock_fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode))) |
|
|
0 |
12 |
if (!(sock_fd >= 0 && fstat(sock_fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode))) |
|
410
|
9 |
3 |
if (items > 1) { |
|
412
|
9 |
0 |
if (SvOK(ST(1)) && looks_like_number(ST(1))) { |
|
|
0 |
9 |
if (SvOK(ST(1)) && looks_like_number(ST(1))) { |
|
429
|
3 |
2 |
RETVAL= fd >= 0 && fstat(fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode); |
|
|
3 |
0 |
RETVAL= fd >= 0 && fstat(fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode); |
|
|
2 |
1 |
RETVAL= fd >= 0 && fstat(fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode); |
|
|
2 |
3 |
RETVAL= fd >= 0 && fstat(fd, &statbuf) == 0 && S_ISSOCK(statbuf.st_mode); |
|
442
|
1 |
1 |
while (avail <= needed) { |
|
468
|
0 |
7 |
EXTEND(SP, 2); |
|
470
|
0 |
7 |
PUSHs(sv_2mortal(newSViv(ret < 0? errno : ret > 0? pollbuf.revents : 0))); |
|
|
6 |
1 |
PUSHs(sv_2mortal(newSViv(ret < 0? errno : ret > 0? pollbuf.revents : 0))); |