You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by kx...@apache.org on 2015/09/23 14:29:36 UTC
[42/50] rebar commit: updated refs/heads/import to 5dea85d
rmemo: support R13 for rebar only
ets read_concurrency has been available since R14, but rebar supports
R13B03 (and newer). As a workaround we check that erts/ebin/erts.app
exists as another pre-R14 characteristic to determine whether we can
assume read_concurrency is supported.
Project: http://git-wip-us.apache.org/repos/asf/couchdb-rebar/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-rebar/commit/242b52b8
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-rebar/tree/242b52b8
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-rebar/diff/242b52b8
Branch: refs/heads/import
Commit: 242b52b8d2d1b343a25cfbf1ff56aa9c7e32a56f
Parents: ec018cf
Author: Tuncer Ayaz <tu...@gmail.com>
Authored: Thu Jun 11 20:38:43 2015 +0200
Committer: Tuncer Ayaz <tu...@gmail.com>
Committed: Fri Jun 12 12:52:24 2015 +0200
----------------------------------------------------------------------
src/rmemo.erl | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-rebar/blob/242b52b8/src/rmemo.erl
----------------------------------------------------------------------
diff --git a/src/rmemo.erl b/src/rmemo.erl
index 752c811..1d872fc 100644
--- a/src/rmemo.erl
+++ b/src/rmemo.erl
@@ -180,14 +180,27 @@ init(_) ->
-spec ets_tab() -> ets:tab().
ets_tab() ->
+ ErtsApp = filename:join(code:lib_dir(erts, ebin), "erts.app"),
+ Concurrency =
+ %% If erts.app exists, we run on at least R14. That means we
+ %% can use ets read_concurrency.
+ %% TODO: Remove and revert to vanilla memo.erl from
+ %% https://github.com/tuncer/memo once we require at least
+ %% R14B and drop support for R13.
+ case filelib:is_regular(ErtsApp) of
+ true ->
+ [{read_concurrency, true}];
+ false ->
+ []
+ end,
ets:new(
?TABLE,
[
named_table,
protected,
- set,
- {read_concurrency, true}
+ set
]
+ ++ Concurrency
).
%%--------------------------------------------------------------------