bug in timer:sleep/1 smp implementation (R11B-0)
Dmitriy Kargapolov
dmitry.kargapolov@REDACTED
Thu Jun 15 17:31:49 CEST 2006
When running erl with -smp +S 2 option, sometimes process gets stuck in
timer:sleep/1.
Process code looks like:
some_receiver(State) ->
NewState = receive
% legal packet
{some_keyword, Address, Port, Packet} ->
State1 = handle_packet(Address, Port, Packet, State),
timer:sleep(get_loop_delay()),
State1;
% unknown message
_ ->
State
end,
some_receiver(NewState).
Delay value varies in range 1..999
Since timer:sleep/1 implemented as:
sleep(T) ->
receive
after T -> ok
end.
it seems to be problem with "after" in smp implementation in R11B-0
I don't have more details yet but will continue testing.
My platform: 2.6.9-5.ELsmp #1 SMP i686 i686 i386 GNU/Linux
More information about the erlang-bugs
mailing list