diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2013-01-01 12:44:45 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2013-01-01 12:44:45 +0000 |
| commit | 34ef2446341123de05f387f0d8e675316464e040 (patch) | |
| tree | b79c070255a955bbc4ef68e50711f18480a5c97d /src | |
| parent | b7ca1bca9067ce37fd5b835c9b4d57a0a12f0185 (diff) | |
| download | rabbitmq-server-git-34ef2446341123de05f387f0d8e675316464e040.tar.gz | |
refactor: extract stop_syncer function
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_sync.erl | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/rabbit_mirror_queue_sync.erl b/src/rabbit_mirror_queue_sync.erl index e3edecb58b..38a18e4a55 100644 --- a/src/rabbit_mirror_queue_sync.erl +++ b/src/rabbit_mirror_queue_sync.erl @@ -94,11 +94,7 @@ master_send(Msg, MsgProps, {Syncer, Ref, Log, HandleInfo, EmitStats, Parent}, end, receive {'$gen_call', From, - cancel_sync_mirrors} -> unlink(Syncer), - Syncer ! {cancel, Ref}, - receive {'EXIT', Syncer, _} -> ok - after 0 -> ok - end, + cancel_sync_mirrors} -> stop_syncer(Syncer, {cancel, Ref}), gen_server2:reply(From, ok), {stop, cancelled}; {next, Ref} -> Syncer ! {msg, Ref, Msg, MsgProps}, @@ -109,16 +105,19 @@ master_send(Msg, MsgProps, {Syncer, Ref, Log, HandleInfo, EmitStats, Parent}, master_done({Syncer, Ref, _Log, _HandleInfo, _EmitStats, Parent}, BQS) -> receive - {next, Ref} -> unlink(Syncer), - Syncer ! {done, Ref}, - receive {'EXIT', Syncer, _} -> ok - after 0 -> ok - end, + {next, Ref} -> stop_syncer(Syncer, {done, Ref}), {ok, BQS}; {'EXIT', Parent, Reason} -> {shutdown, Reason, BQS}; {'EXIT', Syncer, Reason} -> {sync_died, Reason, BQS} end. +stop_syncer(Syncer, Msg) -> + unlink(Syncer), + Syncer ! Msg, + receive {'EXIT', Syncer, _} -> ok + after 0 -> ok + end. + %% Master %% --------------------------------------------------------------------------- %% Syncer |
