diff options
Diffstat (limited to 'src/couchdb/couch_stats_collector.erl')
-rw-r--r-- | src/couchdb/couch_stats_collector.erl | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/couchdb/couch_stats_collector.erl b/src/couchdb/couch_stats_collector.erl index 854fffb0..ad5e9e9a 100644 --- a/src/couchdb/couch_stats_collector.erl +++ b/src/couchdb/couch_stats_collector.erl @@ -24,6 +24,7 @@ -export([start/0, stop/0, get/1, increment/1, decrement/1, + track_process_count/1, record/2, clear/1, all/0, all/1]). @@ -87,6 +88,20 @@ all(Type) -> end. +track_process_count(Stat) -> + case (catch couch_stats_collector:increment(Stat)) of + ok -> + Self = self(), + spawn( + fun() -> + erlang:monitor(process, Self), + receive {'DOWN', _, _, _, _} -> ok end, + couch_stats_collector:decrement(Stat) + end); + _ -> ok + end. + + % GEN_SERVER |