diff options
| author | Matthew Sackman <matthew@lshift.net> | 2010-04-04 04:05:08 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2010-04-04 04:05:08 +0100 |
| commit | 5cb64c654ae58d09d54cb2677d08edff1032aed3 (patch) | |
| tree | bc15e626c551847860db9a857177138c346c8ee0 /src | |
| parent | 2b781c1f318f7ee7d444e4249c50404920098234 (diff) | |
| parent | f318a056c0c6999fe5d9d853440f4a49e92530b3 (diff) | |
| download | rabbitmq-server-git-5cb64c654ae58d09d54cb2677d08edff1032aed3.tar.gz | |
Merging in from default
Diffstat (limited to 'src')
| -rw-r--r-- | src/worker_pool.erl | 10 | ||||
| -rw-r--r-- | src/worker_pool_worker.erl | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/worker_pool.erl b/src/worker_pool.erl index fcacdd5914..5f75a4c660 100644 --- a/src/worker_pool.erl +++ b/src/worker_pool.erl @@ -96,9 +96,11 @@ handle_call(next_free, From, State = #state { available = Avail, case queue:out(Avail) of {empty, _Avail} -> {noreply, - State #state { pending = queue:in({next_free, From}, Pending) }}; + State #state { pending = queue:in({next_free, From}, Pending) }, + hibernate}; {{value, WId}, Avail1} -> - {reply, get_worker_pid(WId), State #state { available = Avail1 }} + {reply, get_worker_pid(WId), State #state { available = Avail1 }, + hibernate} end; handle_call(Msg, _From, State) -> @@ -115,7 +117,7 @@ handle_cast({idle, WId}, State = #state { available = Avail, {{value, {run_async, Fun}}, Pending1} -> worker_pool_worker:submit_async(get_worker_pid(WId), Fun), State #state { pending = Pending1 } - end}; + end, hibernate}; handle_cast({run_async, Fun}, State = #state { available = Avail, pending = Pending }) -> @@ -126,7 +128,7 @@ handle_cast({run_async, Fun}, State = #state { available = Avail, {{value, WId}, Avail1} -> worker_pool_worker:submit_async(get_worker_pid(WId), Fun), State #state { available = Avail1 } - end}; + end, hibernate}; handle_cast(Msg, State) -> {stop, {unexpected_cast, Msg}, State}. diff --git a/src/worker_pool_worker.erl b/src/worker_pool_worker.erl index 5a6ccb1609..8cd84a95ca 100644 --- a/src/worker_pool_worker.erl +++ b/src/worker_pool_worker.erl @@ -82,7 +82,7 @@ init([WId]) -> handle_call({submit, Fun}, From, WId) -> gen_server2:reply(From, run(Fun)), ok = worker_pool:idle(WId), - {noreply, WId}; + {noreply, WId, hibernate}; handle_call(Msg, _From, State) -> {stop, {unexpected_call, Msg}, State}. |
