aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2018-10-12 10:17:18 +0200
committerLukas Larsson <[email protected]>2018-12-03 13:27:21 +0100
commit19e7675913a0c244231344d4d40db447a0bb7ef1 (patch)
tree3c8f0d0e81870c89ed899b79dd09ad499f780c9b /erts/emulator/sys
parent33324fd140998f36698145d2eea7e8722c044740 (diff)
downloadotp-19e7675913a0c244231344d4d40db447a0bb7ef1.tar.gz
otp-19e7675913a0c244231344d4d40db447a0bb7ef1.tar.bz2
otp-19e7675913a0c244231344d4d40db447a0bb7ef1.zip
erts: Add erts_io_notify_port_task_executed to check_io msacc state
OTP-15450
Diffstat (limited to 'erts/emulator/sys')
-rw-r--r--erts/emulator/sys/common/erl_check_io.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/sys/common/erl_check_io.c b/erts/emulator/sys/common/erl_check_io.c
index 748555165f..1444cee805 100644
--- a/erts/emulator/sys/common/erl_check_io.c
+++ b/erts/emulator/sys/common/erl_check_io.c
@@ -431,6 +431,8 @@ erts_io_notify_port_task_executed(ErtsPortTaskType type,
ErtsDrvSelectDataState *free_select = NULL;
ErtsNifSelectDataState *free_nif = NULL;
+ ERTS_MSACC_PUSH_AND_SET_STATE_M_X(ERTS_MSACC_STATE_CHECK_IO);
+
erts_mtx_lock(mtx);
state = get_drv_ev_state(fd);
@@ -486,6 +488,8 @@ erts_io_notify_port_task_executed(ErtsPortTaskType type,
free_drv_select_data(free_select);
if (free_nif)
free_nif_select_data(free_nif);
+
+ ERTS_MSACC_POP_STATE_M_X();
}
static ERTS_INLINE void