diff options
author | Björn-Egil Dahlberg <psyeugenic@gmail.com> | 2010-05-11 20:14:09 +0200 |
---|---|---|
committer | Raimo Niskanen <raimo@erlang.org> | 2010-06-03 14:54:21 +0200 |
commit | 96a6c45d081e41dbe2d44a8d07d78b46d0e9f587 (patch) | |
tree | e715d1718e40b0361dd3bac2a4e11d27d84eba8c /erts/emulator/beam/beam_emu.c | |
parent | 9fd1b1794c6e582cccfdb946b225ccf7acc98c9d (diff) | |
download | otp-96a6c45d081e41dbe2d44a8d07d78b46d0e9f587.tar.gz otp-96a6c45d081e41dbe2d44a8d07d78b46d0e9f587.tar.bz2 otp-96a6c45d081e41dbe2d44a8d07d78b46d0e9f587.zip |
Teach call count tracing to use atomics
Call count previously used a global lock for accessing and writing
its counter in the breakpoint. This is now changed to atomics instead.
The change will let call count tracing and cprof to scale better
when increasing the number of schedulers.
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r-- | erts/emulator/beam/beam_emu.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c index 6313319b9b..d543006b62 100644 --- a/erts/emulator/beam/beam_emu.c +++ b/erts/emulator/beam/beam_emu.c @@ -4404,7 +4404,7 @@ apply_bif_or_nif_epilogue: OpCase(i_count_breakpoint): { BeamInstr real_I; - ErtsCountBreak((BeamInstr *) I, &real_I); + ErtsCountBreak(c_p, (BeamInstr *) I, &real_I); ASSERT(VALID_INSTR(real_I)); Goto(real_I); } @@ -4485,7 +4485,7 @@ apply_bif_or_nif_epilogue: if (! IS_TRACED_FL(c_p, F_TRACE_CALLS)) { BeamInstr real_I; - ErtsBreakSkip((BeamInstr *) I, &real_I); + ErtsBreakSkip(c_p, (BeamInstr *) I, &real_I); Goto(real_I); } /* Fall through to next case */ |