From ae2d68d08a9c97c71e82da9aae808fb49e699695 Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Thu, 10 Jul 2008 22:07:10 +0000 Subject: Wait for the OS to flush our newly written data to disk without timing out too quickly. git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@675780 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_db.erl | 6 +++--- src/couchdb/couch_file.erl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/couchdb/couch_db.erl b/src/couchdb/couch_db.erl index e3ab1622..05b584a5 100644 --- a/src/couchdb/couch_db.erl +++ b/src/couchdb/couch_db.erl @@ -298,13 +298,13 @@ update_docs(MainPid, Docs, Options) -> % flush unwritten binaries to disk. DocBuckets3 = [[doc_flush_binaries(Doc, Db#db.fd) || Doc <- Bucket] || Bucket <- DocBuckets2], - case gen_server:call(MainPid, {update_docs, DocBuckets3, [new_edits | Options]}) of + case gen_server:call(MainPid, {update_docs, DocBuckets3, [new_edits | Options]}, infinity) of ok -> {ok, NewRevs}; retry -> Db2 = get_db(MainPid), DocBuckets4 = [[doc_flush_binaries(Doc, Db2#db.fd) || Doc <- Bucket] || Bucket <- DocBuckets3], % We only retry once - case gen_server:call(MainPid, {update_docs, DocBuckets4, [new_edits | Options]}) of + case gen_server:call(MainPid, {update_docs, DocBuckets4, [new_edits | Options]}, infinity) of ok -> {ok, NewRevs}; Else -> throw(Else) end; @@ -320,7 +320,7 @@ save_docs(MainPid, Docs, Options) -> Db = get_db(MainPid), DocBuckets = group_alike_docs(Docs), DocBuckets2 = [[doc_flush_binaries(Doc, Db#db.fd) || Doc <- Bucket] || Bucket <- DocBuckets], - ok = gen_server:call(MainPid, {update_docs, DocBuckets2, Options}). + ok = gen_server:call(MainPid, {update_docs, DocBuckets2, Options}, infinity). doc_flush_binaries(Doc, Fd) -> diff --git a/src/couchdb/couch_file.erl b/src/couchdb/couch_file.erl index 26831c8c..9baa1f73 100644 --- a/src/couchdb/couch_file.erl +++ b/src/couchdb/couch_file.erl @@ -156,7 +156,7 @@ truncate(Fd, Pos) -> %%---------------------------------------------------------------------- sync(Fd) -> - gen_server:call(Fd, sync). + gen_server:call(Fd, sync, infinity). %%---------------------------------------------------------------------- %% Purpose: Close the file. Is performed asynchronously. -- cgit v1.2.3