diff options
author | Björn Gustavsson <[email protected]> | 2011-11-17 09:52:12 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-11-17 09:52:12 +0100 |
commit | ab75301714c3183172e3d315437ed2d62d735c4e (patch) | |
tree | 59b6a520961a6e6bacb05a48c58d62d8509f067b /erts/emulator/beam/global.h | |
parent | 8e8fa01525dabf757009054798569aba115d2952 (diff) | |
parent | bee543c25be70380be225021864a079c01b56255 (diff) | |
download | otp-ab75301714c3183172e3d315437ed2d62d735c4e.tar.gz otp-ab75301714c3183172e3d315437ed2d62d735c4e.tar.bz2 otp-ab75301714c3183172e3d315437ed2d62d735c4e.zip |
Merge branch 'bjorn/erts/code-loading/OTP-9720'
* bjorn/erts/code-loading/OTP-9720:
BEAM loader: Don't stop other schedulers until truly needed
BEAM loader: Refactor code loading into separate functions
beam_load.c: Factor out cleaning up of the loader state into free_state()
BEAM loader: Clean up handling of error reasons
Remove the useless -l option
beam_load.c: Simplify handling of the bs_put_string_II instruction
beam_load.c: Remove the unused struct LoadedCode
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r-- | erts/emulator/beam/global.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h index 4a4973baab..9f19172e08 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -555,7 +555,6 @@ extern Eterm node_cookie; extern erts_smp_atomic_t erts_bytes_out; /* no bytes written out */ extern erts_smp_atomic_t erts_bytes_in; /* no bytes sent into the system */ extern Uint display_items; /* no of items to display in traces etc */ -extern Uint display_loads; /* print info about loaded modules */ extern int erts_backtrace_depth; extern erts_smp_atomic32_t erts_max_gen_gcs; @@ -867,8 +866,14 @@ typedef struct { Eterm* fname_ptr; /* Pointer to fname table */ } FunctionInfo; -int erts_load_module(Process *c_p, ErtsProcLocks c_p_locks, - Eterm group_leader, Eterm* mod, byte* code, int size); +struct LoaderState* erts_alloc_loader_state(void); +Eterm erts_prepare_loading(struct LoaderState*, Process *c_p, + Eterm group_leader, Eterm* modp, + byte* code, Uint size); +Eterm erts_finish_loading(struct LoaderState* stp, Process* c_p, + ErtsProcLocks c_p_locks, Eterm* modp); +Eterm erts_load_module(Process *c_p, ErtsProcLocks c_p_locks, + Eterm group_leader, Eterm* mod, byte* code, Uint size); void init_load(void); BeamInstr* find_function_from_pc(BeamInstr* pc); Eterm* erts_build_mfa_item(FunctionInfo* fi, Eterm* hp, |