diff options
author | Paul J. Davis <paul.joseph.davis@gmail.com> | 2019-12-03 12:44:34 -0600 |
---|---|---|
committer | Paul J. Davis <paul.joseph.davis@gmail.com> | 2020-02-12 17:19:39 -0600 |
commit | b8b13ec7d49fda1de21fa5c9665c312acba9eddb (patch) | |
tree | 4642bb464d4c6abe423b73f0b98fbc0bc038ab76 | |
parent | b2b5208fd151a92d1dd04e76f72f875a74460323 (diff) | |
download | couchdb-b8b13ec7d49fda1de21fa5c9665c312acba9eddb.tar.gz |
Implement async API for `fabric2_fdb:get_info/1`
-rw-r--r-- | src/fabric/src/fabric2_fdb.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/fabric/src/fabric2_fdb.erl b/src/fabric/src/fabric2_fdb.erl index 8bfbb749a..0e7cba859 100644 --- a/src/fabric/src/fabric2_fdb.erl +++ b/src/fabric/src/fabric2_fdb.erl @@ -29,6 +29,8 @@ list_dbs/4, get_info/1, + get_info_future/2, + get_info_wait/1, set_config/3, get_stat/2, @@ -333,7 +335,10 @@ get_info(#{} = Db) -> tx := Tx, db_prefix := DbPrefix } = ensure_current(Db), + get_info_wait(get_info_future(Tx, DbPrefix)). + +get_info_future(Tx, DbPrefix) -> {CStart, CEnd} = erlfdb_tuple:range({?DB_CHANGES}, DbPrefix), ChangesFuture = erlfdb:get_range(Tx, CStart, CEnd, [ {streaming_mode, exact}, @@ -344,6 +349,10 @@ get_info(#{} = Db) -> StatsPrefix = erlfdb_tuple:pack({?DB_STATS}, DbPrefix), MetaFuture = erlfdb:get_range_startswith(Tx, StatsPrefix), + {DbPrefix, ChangesFuture, MetaFuture}. + + +get_info_wait({DbPrefix, ChangesFuture, MetaFuture}) -> RawSeq = case erlfdb:wait(ChangesFuture) of [] -> vs_to_seq(fabric2_util:seq_zero_vs()); |