blob: 90791de1b2e65d7063d8c115d4808d29a62cf8c9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
%% This tests that the race condition detection between whereis/register
%% is robust even when the functions are called with different variables
%% as arguments.
-module(whereis_diff_vars_race).
-export([test/2]).
test(AnAtom, AnotherAtom) ->
Fun = fun () -> foo end,
{aux(AnAtom, AnotherAtom, Fun), aux(AnotherAtom, AnAtom, Fun)}.
aux(Atom1, Atom2, Fun) ->
case whereis(Atom1) of
undefined ->
Pid = spawn(Fun),
register(Atom2, Pid);
P when is_pid(P) ->
ok
end.
|