diff options
author | Rickard Green <rickard@erlang.org> | 2012-06-06 21:49:48 +0200 |
---|---|---|
committer | Rickard Green <rickard@erlang.org> | 2012-08-02 17:59:01 +0200 |
commit | 88126e785de24f5f41068c610bc13840dcab4a7d (patch) | |
tree | 8e72b687d4b5f12a678e12fd59977ecf783b6e77 /erts/emulator/beam/erl_thr_progress.h | |
parent | da6ea485c20727fe63bb365f34e40ccb8570d413 (diff) | |
download | otp-88126e785de24f5f41068c610bc13840dcab4a7d.tar.gz otp-88126e785de24f5f41068c610bc13840dcab4a7d.tar.bz2 otp-88126e785de24f5f41068c610bc13840dcab4a7d.zip |
Use thread progress instead of scheduling misc aux work were possible
Functionality for scheduling operations at thread progress later
has been introduced.
Deallocation of ETS table structures were previously done by scheduling
misc aux work. Deallocation of process structures (not released yet)
was also implemented this way. Instead of using the misc aux work
functionality these implementation now use the newly introduced
functionality for scheduling operations at thread progress later. By
using this new functionaliy we reduce the amount of memory
allocation/deallocation operations needed.
Diffstat (limited to 'erts/emulator/beam/erl_thr_progress.h')
-rw-r--r-- | erts/emulator/beam/erl_thr_progress.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_thr_progress.h b/erts/emulator/beam/erl_thr_progress.h index 89486b065b..e72321cf48 100644 --- a/erts/emulator/beam/erl_thr_progress.h +++ b/erts/emulator/beam/erl_thr_progress.h @@ -78,6 +78,16 @@ void erts_thr_progress_fatal_error_block(SWord timeout, #endif /* ERTS_SMP */ +typedef struct ErtsThrPrgrLaterOp_ ErtsThrPrgrLaterOp; +struct ErtsThrPrgrLaterOp_ { +#ifdef ERTS_SMP + ErtsThrPrgrVal later; +#endif + void (*func)(void *); + void *data; + ErtsThrPrgrLaterOp *next; +}; + #endif #if !defined(ERL_THR_PROGRESS_H__) && !defined(ERL_THR_PROGRESS_TSD_TYPE_ONLY) |