Skip to content

Commit

Permalink
Don't corrupt state of channel when receiving pubsub message
Browse files Browse the repository at this point in the history
  • Loading branch information
paulj committed May 6, 2010
1 parent b061b63 commit 6ea326a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/erldis_client.erl
Expand Up @@ -463,7 +463,8 @@ parse_state(State, Socket, Data) ->
Pid ! {message, Class, PubSubValue};
_ ->
error_logger:error_report([lost_message, {class, Class}])
end;
end,
send_reply(State#redis{buffer=[]});
Buffer ->
send_reply(State#redis{buffer=Buffer})
end;
Expand Down
21 changes: 21 additions & 0 deletions test/erldis_pubsub_tests.erl
Expand Up @@ -35,4 +35,25 @@ pubsub_test()->
after
100 ->
?assertEqual(true, false) %TODO not proud
end.

pubsub_multiple_test()->
{ok, Pub} = erldis:connect("localhost", 6379),
{ok, Sub} = erldis:connect("localhost", 6379),
?assertEqual(1, erldis:subscribe(Sub, <<"multibidule">>, self())),
?assertEqual(1, erldis:publish(Pub, <<"multibidule">>, <<"bar">>)),
receive
{message, <<"multibidule">>, M1} ->
?assertEqual(<<"bar">>, M1)
after
100 ->
?assertEqual(true, false) %TODO not proud
end,
?assertEqual(1, erldis:publish(Pub, <<"multibidule">>, <<"baz">>)),
receive
{message, <<"multibidule">>, M2} ->
?assertEqual(<<"baz">>, M2)
after
100 ->
?assertEqual(true, false) %TODO not proud
end.

0 comments on commit 6ea326a

Please sign in to comment.