diff options
author | Rickard Green <rickard@erlang.org> | 2019-12-09 16:29:21 +0100 |
---|---|---|
committer | Rickard Green <rickard@erlang.org> | 2019-12-11 16:18:46 +0100 |
commit | e80c2426b404143e699dc2be36bdaddcbe2f9565 (patch) | |
tree | 48df4470e24e34ea439ffb9db79301160d80489b /erts/preloaded/src/erts_internal.erl | |
parent | d2b34084ceb7c67c7272b4e04a3a2245e60a353c (diff) | |
download | erlang-e80c2426b404143e699dc2be36bdaddcbe2f9565.tar.gz |
Block multi-scheduling during node/dist check
Diffstat (limited to 'erts/preloaded/src/erts_internal.erl')
-rw-r--r-- | erts/preloaded/src/erts_internal.erl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/erts/preloaded/src/erts_internal.erl b/erts/preloaded/src/erts_internal.erl index bbe9a9affa..0dd65d3e27 100644 --- a/erts/preloaded/src/erts_internal.erl +++ b/erts/preloaded/src/erts_internal.erl @@ -103,6 +103,8 @@ -export([ets_lookup_binary_info/2, ets_super_user/1, ets_info_binary/1, ets_raw_first/1, ets_raw_next/2]). +-export([get_internal_state_blocked/1]). + %% %% Await result of send to port %% @@ -816,3 +818,15 @@ ets_info_binary_iter(Tab, Key, Acc) -> [_|_] = BIL -> BIL ++ Acc end, ets_info_binary_iter(Tab, erts_internal:ets_raw_next(Tab, Key), NewAcc). + +-spec get_internal_state_blocked(Arg :: term()) -> term(). + +get_internal_state_blocked(Arg) -> + erlang:system_flag(multi_scheduling, block), + Result = try + erts_debug:get_internal_state({Arg, + blocked}) + after + erlang:system_flag(multi_scheduling, unblock) + end, + Result. |