1
%% This tests that the race condition detection between mnesia:dirty_read/
2
%% mnesia:dirty_write is robust even when the functions are called with
3
%% different atoms as arguments.
5
-module(mnesia_diff_atoms_race1).
8
-record(employee, {emp_no,
16
{race(employee, Eno, Raise), no_race(employee, Eno, Raise)}.
18
race(Tab, Eno, Raise) ->
19
[E] = mnesia:dirty_read(Tab, Eno),
20
Salary = E#employee.salary + Raise,
21
New = E#employee{salary = Salary},
24
no_race(Tab, Eno, Raise) ->
25
[E] = mnesia:dirty_read(Tab, Eno),
26
Salary = E#employee.salary + Raise,
27
New = E#employee{salary = Salary},
28
AnotherTab = employer,
33
mnesia:dirty_write(Table, Record).