diff options
author | Adam Kocoloski <kocolosk@apache.org> | 2009-09-21 20:24:10 +0000 |
---|---|---|
committer | Adam Kocoloski <kocolosk@apache.org> | 2009-09-21 20:24:10 +0000 |
commit | ce97451ef23bc74d1d8855c04f456eac35315b90 (patch) | |
tree | d644a4af51c54d5021c741e360e49c2db45d476d /src/couchdb/couch_rep_httpc.erl | |
parent | ec9ad52b8444317ededce3a5f2dc4ae63c89d763 (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.erl | 8 |
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), |