aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2013-12-17 13:20:31 +0100
committerSverker Eriksson <[email protected]>2013-12-17 13:20:31 +0100
commit165846b143c8275350972caaf4c1013cfe5db043 (patch)
tree8ec4ddea514aa1a0e94249328a77df91d5195ebf /erts/emulator/beam/erl_process.c
parent7d4e5e2458e0627882f49078b9757dd6ae21a6fe (diff)
parent4b3462665c591dffa05294ce5ea94c6259446a04 (diff)
downloadotp-165846b143c8275350972caaf4c1013cfe5db043.tar.gz
otp-165846b143c8275350972caaf4c1013cfe5db043.tar.bz2
otp-165846b143c8275350972caaf4c1013cfe5db043.zip
Merge tag 'OTP_R16B03_yielding_binary_to_term'
Yielding binary_to_term. OTP-11535 * tag 'OTP_R16B03_yielding_binary_to_term': Increase versions for OTP_R16B03_yielding_binary_to_term erts: Adjust term_to_binary reduction factors erts: Yield after trapping term_to_binary if gc has been ordered erts: Let term_to_binary disable gc while trapping erts: Improve stress of binary_to_term in binary_SUITE erts: Fix bug in binary_to_term for compressed on halfword erts: Fix crash when binary_to_term throws badarg erts: Trapping memcpy in binary_to_term erts: Cleanup code for trapping binary_to_term erts: Add erlang wrappers to binary_to_term trapping uncompress trapping size calculation trapping binary_to_term/2 trapping STRING_EXT trapping lists and tuples trapping binary_to_term passing binary_SUITE Conflicts: erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/vsn.mk lib/kernel/vsn.mk lib/stdlib/vsn.mk
Diffstat (limited to 'erts/emulator/beam/erl_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 0a41fb596d..21fd8dd50a 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -8271,25 +8271,22 @@ save_gc_task(Process *c_p, ErtsProcSysTask *st, int prio)
int
erts_set_gc_state(Process *c_p, int enable)
{
- int res;
ErtsProcSysTaskQs *dgc_tsk_qs;
ASSERT(c_p == erts_get_current_process());
ASSERT((ERTS_PSFLG_RUNNING|ERTS_PSFLG_RUNNING_SYS)
& erts_smp_atomic32_read_nob(&c_p->state));
ERTS_SMP_LC_ASSERT(ERTS_PROC_LOCK_MAIN == erts_proc_lc_my_proc_locks(c_p));
- res = !(c_p->flags & F_DISABLE_GC);
-
if (!enable) {
c_p->flags |= F_DISABLE_GC;
- return res;
+ return 0;
}
c_p->flags &= ~F_DISABLE_GC;
dgc_tsk_qs = ERTS_PROC_GET_DELAYED_GC_TASK_QS(c_p);
if (!dgc_tsk_qs)
- return res;
+ return 0;
/* Move delayed gc tasks into sys tasks queues. */
@@ -8387,7 +8384,7 @@ erts_set_gc_state(Process *c_p, int enable)
if (dgc_tsk_qs)
proc_sys_task_queues_free(dgc_tsk_qs);
- return res;
+ return 1;
}
void