diff options
author | Henrik Nord <[email protected]> | 2011-05-09 15:08:38 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-05-09 15:08:46 +0200 |
commit | b20244d0f730a950749919245eec3abd42b44cc5 (patch) | |
tree | ad2e420e7b32498dadccf115ac6ecc76dd5bf535 /lib/dialyzer/test/race_SUITE_data/src/whereis_diff_modules1_pathsens/whereis_diff_modules1_pathsens.erl | |
parent | dbc55f6b24ed507ee2201d0c084d167630d822d0 (diff) | |
parent | 39e62c0a199af0c91d1bfb11b186b574824dce1b (diff) | |
download | otp-b20244d0f730a950749919245eec3abd42b44cc5.tar.gz otp-b20244d0f730a950749919245eec3abd42b44cc5.tar.bz2 otp-b20244d0f730a950749919245eec3abd42b44cc5.zip |
Merge branch 'sa/dialyzer-tests' into dev
* sa/dialyzer-tests: (22 commits)
Update dialyzer.spec
Add race/ets_insert_public
Add opaque/ewgi,ewgi2
Add opaque/schuett_bug
Add small/param_types_crash
Add small/file_open_encoding
Add small/false_false
Add small/ets_update_counter
Add small/bin_compr
Add small/tuple_set_crash
Add small/refine_failing
Add small/not_bogus_warning
Add small/none_scc_inf_loop
Add small/guards
Add small/guard_warnings
Add small/confusing_record_warning
Add small/blame_contract_range
Update small/recursive_types2 source
Update opaque/zoltan_kis* sources
Update options1/compiler results
...
OTP-9278
Diffstat (limited to 'lib/dialyzer/test/race_SUITE_data/src/whereis_diff_modules1_pathsens/whereis_diff_modules1_pathsens.erl')
-rw-r--r-- | lib/dialyzer/test/race_SUITE_data/src/whereis_diff_modules1_pathsens/whereis_diff_modules1_pathsens.erl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/dialyzer/test/race_SUITE_data/src/whereis_diff_modules1_pathsens/whereis_diff_modules1_pathsens.erl b/lib/dialyzer/test/race_SUITE_data/src/whereis_diff_modules1_pathsens/whereis_diff_modules1_pathsens.erl new file mode 100644 index 0000000000..a5f1d4d3c7 --- /dev/null +++ b/lib/dialyzer/test/race_SUITE_data/src/whereis_diff_modules1_pathsens/whereis_diff_modules1_pathsens.erl @@ -0,0 +1,26 @@ +%% This tests that the race condition detection between whereis/register +%% is robust w.r.t. having the calls in separate modules (backward analysis). +%% It takes into account control flow that might exist. + +-module(whereis_diff_modules1_pathsens). +-export([start/3]). + +start(AnAtom, Fun, FunName) -> + Pid = + case FunName of + master -> + case whereis(AnAtom) of + undefined -> + spawn(Fun); + P when is_pid(P) -> + P + end; + slave -> + case whereis(AnAtom) of + undefined -> + spawn(Fun); + P when is_pid(P) -> + P + end + end, + whereis_diff_modules2_pathsens:race(AnAtom, Pid). |