rgw_file: avoid long-ish delay on shutdown

Normal shutdown was likely to be delayed a substantial fraction
of rgw_nfs_namespace_expire_secs due to an ill-advised use of
this_thread::sleep_for.

Fixes: https://tracker.ceph.com/issues/47710

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
This commit is contained in:
Matt Benjamin 2020-09-30 15:13:04 -04:00
parent 72c9c66781
commit 805f749564
2 changed files with 3 additions and 1 deletions

View File

@ -129,8 +129,8 @@ namespace rgw {
if (cur_gen != gen)
goto restart; /* invalidated */
}
cv.wait_for(uniq, std::chrono::seconds(delay_s));
uniq.unlock();
std::this_thread::sleep_for(std::chrono::seconds(delay_s));
}
}

View File

@ -14,6 +14,7 @@ namespace rgw {
class RGWLibProcess : public RGWProcess {
RGWAccessKey access_key;
std::mutex mtx;
std::condition_variable cv;
int gen;
bool shutdown;
@ -36,6 +37,7 @@ namespace rgw {
for (const auto& fs: mounted_fs) {
fs.second->stop();
}
cv.notify_all();
}
void register_fs(RGWLibFS* fs) {