From 505305a4b6a6372921808c4e5ec56db51b6a308b Mon Sep 17 00:00:00 2001
From: Rickard Green
Date: Wed, 18 Jan 2017 13:30:20 +0100
Subject: Remove double check of NifExport when checking process code
---
erts/emulator/beam/beam_bif_load.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/erts/emulator/beam/beam_bif_load.c b/erts/emulator/beam/beam_bif_load.c
index c8dde8caf8..a5891a0ec2 100644
--- a/erts/emulator/beam/beam_bif_load.c
+++ b/erts/emulator/beam/beam_bif_load.c
@@ -1117,11 +1117,6 @@ check_process_code(Process* rp, Module* modp, int *redsp, int fcalls)
*redsp += 1;
- if (erts_check_nif_export_in_area(rp, mod_start, mod_size))
- return am_true;
-
- *redsp += 1;
-
if (erts_check_nif_export_in_area(rp, mod_start, mod_size))
return am_true;
--
cgit v1.2.3
From bfcf88311828b93a833ce96ad1a518b8eca08552 Mon Sep 17 00:00:00 2001
From: Rickard Green
Date: Wed, 18 Jan 2017 14:40:25 +0100
Subject: Change exception for enif_schedule_nif() with dirty flags
---
erts/doc/src/erl_nif.xml | 2 +-
erts/emulator/beam/erl_nif.c | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml
index 51b095e6ef..74a551d60b 100644
--- a/erts/doc/src/erl_nif.xml
+++ b/erts/doc/src/erl_nif.xml
@@ -2463,7 +2463,7 @@ enif_map_iterator_destroy(env, &iter);
CPU-bound, or ERL_NIF_DIRTY_JOB_IO_BOUND for
jobs that will be I/O-bound. If dirty scheduler threads are not
available in the emulator, an attempt to schedule such a job
- results in a badarg exception.
+ results in a notsup exception.
argc and argv
-
diff --git a/erts/emulator/beam/erl_nif.c b/erts/emulator/beam/erl_nif.c
index b860759fa2..af3ca3afa3 100644
--- a/erts/emulator/beam/erl_nif.c
+++ b/erts/emulator/beam/erl_nif.c
@@ -2506,10 +2506,13 @@ enif_schedule_nif(ErlNifEnv* env, const char* fun_name, int flags,
if (flags == 0)
result = schedule(env, execute_nif, fp, proc->current->module,
fun_name_atom, argc, argv);
+ else if (!(flags & ~(ERL_NIF_DIRTY_JOB_IO_BOUND|ERL_NIF_DIRTY_JOB_CPU_BOUND))) {
#ifdef ERTS_DIRTY_SCHEDULERS
- else if (!(flags & ~(ERL_NIF_DIRTY_JOB_IO_BOUND|ERL_NIF_DIRTY_JOB_CPU_BOUND)))
result = schedule_dirty_nif(env, flags, fp, fun_name_atom, argc, argv);
+#else
+ result = enif_raise_exception(env, am_notsup);
#endif
+ }
else
result = enif_make_badarg(env);
--
cgit v1.2.3
From eaecd838ebc3410efcbe0f3b1717543d6a4650b0 Mon Sep 17 00:00:00 2001
From: Rickard Green
Date: Thu, 19 Jan 2017 17:24:14 +0100
Subject: Fix unused warning
---
erts/emulator/beam/erl_process.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index f80ebdf31b..641a8fb3e8 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -127,11 +127,13 @@ runq_got_work_to_execute_flags(Uint32 flags)
return !ERTS_IS_RUNQ_EMPTY_FLGS(flags);
}
+#ifdef ERTS_SMP
static ERTS_INLINE int
runq_got_work_to_execute(ErtsRunQueue *rq)
{
return runq_got_work_to_execute_flags(ERTS_RUNQ_FLGS_GET_NOB(rq));
}
+#endif
#undef RUNQ_READ_RQ
#undef RUNQ_SET_RQ
--
cgit v1.2.3