… | |
… | |
114 | # ifdef SYS_clock_gettime |
114 | # ifdef SYS_clock_gettime |
115 | # define coro_clock_gettime(id, ts) syscall (SYS_clock_gettime, (id), (ts)) |
115 | # define coro_clock_gettime(id, ts) syscall (SYS_clock_gettime, (id), (ts)) |
116 | # define CORO_CLOCK_MONOTONIC 1 |
116 | # define CORO_CLOCK_MONOTONIC 1 |
117 | # define CORO_CLOCK_THREAD_CPUTIME_ID 3 |
117 | # define CORO_CLOCK_THREAD_CPUTIME_ID 3 |
118 | # endif |
118 | # endif |
|
|
119 | #endif |
|
|
120 | |
|
|
121 | #if PERL_VERSION_ATLEAST(5,24,0) |
|
|
122 | # define SUB_ARGARRAY PL_curpad[0] |
|
|
123 | #else |
|
|
124 | # define SUB_ARGARRAY (SV *)cx->blk_sub.argarray |
119 | #endif |
125 | #endif |
120 | |
126 | |
121 | /* perl usually suppressed asserts. for debugging, we sometimes force it to be on */ |
127 | /* perl usually suppressed asserts. for debugging, we sometimes force it to be on */ |
122 | #if 0 |
128 | #if 0 |
123 | # undef NDEBUG |
129 | # undef NDEBUG |
… | |
… | |
1410 | SAVETMPS; |
1416 | SAVETMPS; |
1411 | EXTEND (SP, 3); |
1417 | EXTEND (SP, 3); |
1412 | PUSHMARK (SP); |
1418 | PUSHMARK (SP); |
1413 | PUSHs (&PL_sv_yes); |
1419 | PUSHs (&PL_sv_yes); |
1414 | PUSHs (fullname); |
1420 | PUSHs (fullname); |
1415 | PUSHs (CxHASARGS (cx) ? sv_2mortal (newRV_inc ((SV *)cx->blk_sub.argarray)) : &PL_sv_undef); |
1421 | PUSHs (CxHASARGS (cx) ? sv_2mortal (newRV_inc (SUB_ARGARRAY)) : &PL_sv_undef); |
1416 | PUTBACK; |
1422 | PUTBACK; |
1417 | cb = hv_fetch ((HV *)SvRV (coro_current), "_trace_sub_cb", sizeof ("_trace_sub_cb") - 1, 0); |
1423 | cb = hv_fetch ((HV *)SvRV (coro_current), "_trace_sub_cb", sizeof ("_trace_sub_cb") - 1, 0); |
1418 | if (cb) call_sv (*cb, G_KEEPERR | G_EVAL | G_VOID | G_DISCARD); |
1424 | if (cb) call_sv (*cb, G_KEEPERR | G_EVAL | G_VOID | G_DISCARD); |
1419 | SPAGAIN; |
1425 | SPAGAIN; |
1420 | FREETMPS; |
1426 | FREETMPS; |