mirror of https://gitee.com/bigwinds/arangodb
use steady_clock
This commit is contained in:
parent
2dde7e2307
commit
fb706c162f
|
@ -257,7 +257,7 @@ arangodb::Result Databases::info(TRI_vocbase_t* vocbase, VPackBuilder& result) {
|
|||
|
||||
// Grant permissions on newly created database to current user
|
||||
// to be able to run the upgrade script
|
||||
arangodb::Result Databases::grantCurrentUser(CreateDatabaseInfo const& info, double timeout) {
|
||||
arangodb::Result Databases::grantCurrentUser(CreateDatabaseInfo const& info, int64_t timeout) {
|
||||
auth::UserManager* um = AuthenticationFeature::instance()->userManager();
|
||||
|
||||
Result res;
|
||||
|
@ -268,7 +268,7 @@ arangodb::Result Databases::grantCurrentUser(CreateDatabaseInfo const& info, dou
|
|||
// called us, or when authentication is off), granting rights
|
||||
// will fail. We hence ignore it here, but issue a warning below
|
||||
if (!exec.isSuperuser()) {
|
||||
double const endTime = TRI_microtime() + timeout;
|
||||
auto const endTime = std::chrono::steady_clock::now() + std::chrono::seconds(timeout);
|
||||
while (true) {
|
||||
res = um->updateUser(exec.user(), [&](auth::User& entry) {
|
||||
entry.grantDatabase(info.getName(), auth::Level::RW);
|
||||
|
@ -277,7 +277,7 @@ arangodb::Result Databases::grantCurrentUser(CreateDatabaseInfo const& info, dou
|
|||
});
|
||||
if (res.ok() ||
|
||||
!res.is(TRI_ERROR_ARANGO_CONFLICT) ||
|
||||
TRI_microtime() >= endTime) {
|
||||
std::chrono::steady_clock::now() > endTime) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -328,7 +328,7 @@ Result Databases::createCoordinator(CreateDatabaseInfo const& info) {
|
|||
}
|
||||
});
|
||||
|
||||
res = grantCurrentUser(info, 5.0);
|
||||
res = grantCurrentUser(info, 5);
|
||||
if (!res.ok()) {
|
||||
return res;
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ Result Databases::createOther(CreateDatabaseInfo const& info) {
|
|||
|
||||
TRI_DEFER(vocbase->release());
|
||||
|
||||
Result res = grantCurrentUser(info, 10.0);
|
||||
Result res = grantCurrentUser(info, 10);
|
||||
if (!res.ok()) {
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ struct Databases {
|
|||
|
||||
private:
|
||||
/// @brief will retry for at most <timeout> seconds
|
||||
static arangodb::Result grantCurrentUser(CreateDatabaseInfo const& info, double timeout);
|
||||
static arangodb::Result grantCurrentUser(CreateDatabaseInfo const& info, int64_t timeout);
|
||||
|
||||
static arangodb::Result createCoordinator(CreateDatabaseInfo const& info);
|
||||
static arangodb::Result createOther(CreateDatabaseInfo const& info);
|
||||
|
|
Loading…
Reference in New Issue