diff options
| author | Michael Klishin <michael@rabbitmq.com> | 2013-06-19 16:47:33 +0400 |
|---|---|---|
| committer | Michael Klishin <michael@rabbitmq.com> | 2013-06-19 16:47:33 +0400 |
| commit | 8b8bfec0573f0ea9c406467c13142ec74472ef0f (patch) | |
| tree | 0c2b3cb0d398af5113f678252e49febfaac1a11e /src | |
| parent | 4ccdfa1d20739de1daf65f79826556c61bbb74d7 (diff) | |
| download | rabbitmq-server-git-8b8bfec0573f0ea9c406467c13142ec74472ef0f.tar.gz | |
Make sure set_alarm is idempotent
By making sure alarms list is unique.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_alarm.erl | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index 0724757302..93997a37cf 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -104,7 +104,8 @@ handle_call(_Request, State) -> {ok, not_understood, State}. handle_event({set_alarm, Alarm}, State = #alarms{alarms = Alarms}) -> - handle_set_alarm(Alarm, State#alarms{alarms = [Alarm|Alarms]}); + UpdatedAlarms = lists:usort([Alarm|Alarms]), + handle_set_alarm(Alarm, State#alarms{alarms = UpdatedAlarms}); handle_event({clear_alarm, Alarm}, State = #alarms{alarms = Alarms}) -> handle_clear_alarm(Alarm, State#alarms{alarms = lists:keydelete(Alarm, 1, |
