diff options
author | Rickard Green <[email protected]> | 2013-03-27 18:44:08 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2013-04-03 17:09:36 +0200 |
commit | 8d70fd874ae4da853ac79f4349fbf4a985950656 (patch) | |
tree | bf7c2a0ec719e681c85c299fa759621b61e677fe /erts/emulator/beam/erl_process.h | |
parent | 05f11890bdfec4bfc3a78e191a87e70a937ffc54 (diff) | |
download | otp-8d70fd874ae4da853ac79f4349fbf4a985950656.tar.gz otp-8d70fd874ae4da853ac79f4349fbf4a985950656.tar.bz2 otp-8d70fd874ae4da853ac79f4349fbf4a985950656.zip |
Be less eager requesting wakeup for cleanup jobs
Diffstat (limited to 'erts/emulator/beam/erl_process.h')
-rw-r--r-- | erts/emulator/beam/erl_process.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h index 6d1032c292..3d3579fa7e 100644 --- a/erts/emulator/beam/erl_process.h +++ b/erts/emulator/beam/erl_process.h @@ -430,6 +430,7 @@ typedef struct { ErtsSchedulerSleepInfo *ssi; #ifdef ERTS_SMP ErtsThrPrgrVal current_thr_prgr; + ErtsThrPrgrVal latest_wakeup; #endif struct { int ix; @@ -444,6 +445,8 @@ typedef struct { void (*completed_arg)(void *); } dd; struct { + ErtsThrPrgrVal thr_prgr; + UWord size; ErtsThrPrgrLaterOp *first; ErtsThrPrgrLaterOp *last; } later_op; @@ -1298,10 +1301,15 @@ ERTS_GLB_INLINE int erts_proclist_is_last(ErtsProcList *list, int erts_sched_set_wakeup_other_thresold(char *str); int erts_sched_set_wakeup_other_type(char *str); int erts_sched_set_busy_wait_threshold(char *str); +int erts_sched_set_wake_cleanup_threshold(char *); void erts_schedule_thr_prgr_later_op(void (*)(void *), void *, ErtsThrPrgrLaterOp *); +void erts_schedule_thr_prgr_later_cleanup_op(void (*)(void *), + void *, + ErtsThrPrgrLaterOp *, + UWord); #if defined(ERTS_SMP) && defined(ERTS_ENABLE_LOCK_CHECK) int erts_dbg_check_halloc_lock(Process *p); |