You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by fd...@apache.org on 2010/10/16 14:44:43 UTC
svn commit: r1023271 -
/couchdb/branches/new_replicator/src/couchdb/couch_api_wrap.erl
Author: fdmanana
Date: Sat Oct 16 12:44:43 2010
New Revision: 1023271
URL: http://svn.apache.org/viewvc?rev=1023271&view=rev
Log:
New replicator: revert some of the changes in the previous commit (they landed in by mistake).
Modified:
couchdb/branches/new_replicator/src/couchdb/couch_api_wrap.erl
Modified: couchdb/branches/new_replicator/src/couchdb/couch_api_wrap.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/new_replicator/src/couchdb/couch_api_wrap.erl?rev=1023271&r1=1023270&r2=1023271&view=diff
==============================================================================
--- couchdb/branches/new_replicator/src/couchdb/couch_api_wrap.erl (original)
+++ couchdb/branches/new_replicator/src/couchdb/couch_api_wrap.erl Sat Oct 16 12:44:43 2010
@@ -168,8 +168,7 @@ open_doc_revs(#httpdb{} = HttpDb, Id, Re
{"revs", "true"}, {"open_revs", RevStr} |
options_to_query_args(Options, [])
],
- TrapExit = element(2, erlang:process_info(self(), trap_exit)),
- process_flag(trap_exit, true),
+ Self = self(),
Streamer = spawn_link(fun() ->
send_req(
HttpDb,
@@ -181,13 +180,10 @@ open_doc_revs(#httpdb{} = HttpDb, Id, Re
get_value("Content-Type", Headers),
StreamDataFun,
fun(Ev) -> mp_parse_mixed(Ev) end)
- end)
+ end),
+ unlink(Self)
end),
- Result = receive_docs(Streamer, Fun, Acc),
- unlink(Streamer),
- receive {'EXIT', Streamer, _} -> ok after 0 -> ok end,
- process_flag(trap_exit, TrapExit),
- Result;
+ receive_docs(Streamer, Fun, Acc);
open_doc_revs(Db, Id, Revs, Options, Fun, Acc) ->
{ok, Results} = couch_db:open_doc_revs(Db, Id, Revs, Options),
{ok, lists:foldl(Fun, Acc, Results)}.
@@ -238,8 +234,7 @@ update_doc(#httpdb{} = HttpDb, #doc{id =
false ->
[]
end ++ [{"Content-Type", ?b2l(ContentType)}, {"Content-Length", Len}],
- TrapExit = element(2, erlang:process_info(self(), trap_exit)),
- process_flag(trap_exit, true),
+ Self = self(),
DocStreamer = spawn_link(fun() ->
couch_doc:doc_to_multi_part_stream(
Boundary, JsonBytes, Doc#doc.atts,
@@ -247,7 +242,8 @@ update_doc(#httpdb{} = HttpDb, #doc{id =
receive {get_data, From} ->
From ! {data, Data}
end
- end, false)
+ end, false),
+ unlink(Self)
end),
SendFun = fun(0) ->
eof;
@@ -257,7 +253,7 @@ update_doc(#httpdb{} = HttpDb, #doc{id =
{ok, Data, LenLeft - iolist_size(Data)}
end
end,
- Result = send_req(
+ send_req(
HttpDb,
[{method, put}, {path, encode_doc_id(DocId)},
{qs, QArgs}, {headers, Headers}, {body, {SendFun, Len}}],
@@ -265,11 +261,7 @@ update_doc(#httpdb{} = HttpDb, #doc{id =
{ok, couch_doc:parse_rev(get_value(<<"rev">>, Props))};
(_, _, {Props}) ->
{error, get_value(<<"error">>, Props)}
- end),
- process_flag(trap_exit, TrapExit),
- unlink(DocStreamer),
- receive {'EXIT', DocStreamer, _} -> ok after 0 -> ok end,
- Result;
+ end);
update_doc(Db, Doc, Options, Type) ->
try
couch_db:update_doc(Db, Doc, Options, Type)