summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_file.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couchdb/couch_file.erl')
-rw-r--r--src/couchdb/couch_file.erl20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/couchdb/couch_file.erl b/src/couchdb/couch_file.erl
index b9da5488..430aa6b7 100644
--- a/src/couchdb/couch_file.erl
+++ b/src/couchdb/couch_file.erl
@@ -284,14 +284,16 @@ init({Filepath, Options, ReturnPid, Ref}) ->
true ->
{ok, 0} = file:position(Fd, 0),
ok = file:truncate(Fd),
- track_stats(),
+ couch_stats_collector:track_process_count(
+ {couchdb, open_os_files}),
{ok, Fd};
false ->
ok = file:close(Fd),
init_status_error(ReturnPid, Ref, file_exists)
end;
false ->
- track_stats(),
+ couch_stats_collector:track_process_count(
+ {couchdb, open_os_files}),
{ok, Fd}
end;
Error ->
@@ -303,7 +305,7 @@ init({Filepath, Options, ReturnPid, Ref}) ->
{ok, Fd_Read} ->
{ok, Fd} = file:open(Filepath, [read, write, raw, binary]),
ok = file:close(Fd_Read),
- track_stats(),
+ couch_stats_collector:track_process_count({couchdb, open_os_files}),
{ok, Fd};
Error ->
init_status_error(ReturnPid, Ref, Error)
@@ -314,18 +316,6 @@ init({Filepath, Options, ReturnPid, Ref}) ->
terminate(_Reason, _Fd) ->
ok.
-track_stats() ->
- case (catch couch_stats_collector:increment({couchdb, open_os_files})) of
- ok ->
- Self = self(),
- spawn(
- fun() ->
- erlang:monitor(process, Self),
- receive {'DOWN', _, _, _, _} -> ok end,
- couch_stats_collector:decrement({couchdb, open_os_files})
- end);
- _ -> ok
- end.
handle_call({pread, Pos, Bytes}, _From, Fd) ->
{reply, file:pread(Fd, Pos, Bytes), Fd};