summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_rep_httpc.erl
diff options
context:
space:
mode:
authorAdam Kocoloski <kocolosk@apache.org>2009-09-21 20:24:10 +0000
committerAdam Kocoloski <kocolosk@apache.org>2009-09-21 20:24:10 +0000
commitce97451ef23bc74d1d8855c04f456eac35315b90 (patch)
treed644a4af51c54d5021c741e360e49c2db45d476d /src/couchdb/couch_rep_httpc.erl
parentec9ad52b8444317ededce3a5f2dc4ae63c89d763 (diff)
quietly start a new connection if changes feed is closed
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@817400 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_rep_httpc.erl')
-rw-r--r--src/couchdb/couch_rep_httpc.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/couchdb/couch_rep_httpc.erl b/src/couchdb/couch_rep_httpc.erl
index 5689fa29..14219781 100644
--- a/src/couchdb/couch_rep_httpc.erl
+++ b/src/couchdb/couch_rep_httpc.erl
@@ -143,9 +143,13 @@ process_response({error, Reason}, Req) ->
end,
?LOG_DEBUG("retrying couch_rep_httpc ~p request in ~p seconds due to " ++
"{error, ~p}", [Method, Pause/1000, ShortReason]),
- % "{error}", [Method, Pause]),
timer:sleep(Pause),
- do_request(Req#http_db{retries = Retries-1, pause = 2*Pause}).
+ if Reason == worker_is_dead ->
+ C = spawn_link_worker_process(Req),
+ do_request(Req#http_db{retries = Retries-1, pause = 2*Pause, conn=C});
+ true ->
+ do_request(Req#http_db{retries = Retries-1, pause = 2*Pause})
+ end.
spawn_worker_process(Req) ->
Url = ibrowse_lib:parse_url(Req#http_db.url),