diff options
author | Sverker Eriksson <[email protected]> | 2012-08-30 21:40:17 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2012-08-31 15:50:15 +0200 |
commit | e557d9e5342ed2823d8d580a3b532752c6bbbc15 (patch) | |
tree | 15f7a05b9dba1c3414fe2b27096b94bde92da177 | |
parent | 7719f3e754e43e8176f906c9075257367f73cf93 (diff) | |
download | otp-e557d9e5342ed2823d8d580a3b532752c6bbbc15.tar.gz otp-e557d9e5342ed2823d8d580a3b532752c6bbbc15.tar.bz2 otp-e557d9e5342ed2823d8d580a3b532752c6bbbc15.zip |
erts: Allow thr_prgr_later_op to reschedule
and reuse the same ErtsThrPrgrLaterOp
-rw-r--r-- | erts/emulator/beam/erl_process.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index 25b32c851d..986619944e 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -1632,6 +1632,9 @@ handle_thr_prgr_later_op(ErtsAuxWorkData *awdp, erts_aint32_t aux_work) if (!erts_thr_progress_has_reached_this(current, lop->later)) return aux_work & ~ERTS_SSI_AUX_WORK_THR_PRGR_LATER_OP; awdp->later_op.first = lop->next; + if (!awdp->later_op.first) { + awdp->later_op.last = NULL; + } lop->func(lop->data); if (!awdp->later_op.first) { awdp->later_op.last = NULL; |