@@ -257,7 +257,7 @@ arangodb::Result Databases::info(TRI_vocbase_t* vocbase, VPackBuilder& result) {
257
257
258
258
// Grant permissions on newly created database to current user
259
259
// to be able to run the upgrade script
260
- arangodb::Result Databases::grantCurrentUser (CreateDatabaseInfo const & info, double timeout) {
260
+ arangodb::Result Databases::grantCurrentUser (CreateDatabaseInfo const & info, int64_t timeout) {
261
261
auth::UserManager* um = AuthenticationFeature::instance ()->userManager ();
262
262
263
263
Result res;
@@ -268,7 +268,7 @@ arangodb::Result Databases::grantCurrentUser(CreateDatabaseInfo const& info, dou
268
268
// called us, or when authentication is off), granting rights
269
269
// will fail. We hence ignore it here, but issue a warning below
270
270
if (!exec.isSuperuser ()) {
271
- double const endTime = TRI_microtime () + timeout;
271
+ auto const endTime = std::chrono::steady_clock::now () + std::chrono::seconds ( timeout) ;
272
272
while (true ) {
273
273
res = um->updateUser (exec.user (), [&](auth::User& entry) {
274
274
entry.grantDatabase (info.getName (), auth::Level::RW);
@@ -277,7 +277,7 @@ arangodb::Result Databases::grantCurrentUser(CreateDatabaseInfo const& info, dou
277
277
});
278
278
if (res.ok () ||
279
279
!res.is (TRI_ERROR_ARANGO_CONFLICT) ||
280
- TRI_microtime () >= endTime) {
280
+ std::chrono::steady_clock::now () > endTime) {
281
281
break ;
282
282
}
283
283
@@ -328,7 +328,7 @@ Result Databases::createCoordinator(CreateDatabaseInfo const& info) {
328
328
}
329
329
});
330
330
331
- res = grantCurrentUser (info, 5.0 );
331
+ res = grantCurrentUser (info, 5 );
332
332
if (!res.ok ()) {
333
333
return res;
334
334
}
@@ -382,7 +382,7 @@ Result Databases::createOther(CreateDatabaseInfo const& info) {
382
382
383
383
TRI_DEFER (vocbase->release ());
384
384
385
- Result res = grantCurrentUser (info, 10.0 );
385
+ Result res = grantCurrentUser (info, 10 );
386
386
if (!res.ok ()) {
387
387
return res;
388
388
}
0 commit comments