mirror of
https://github.com/ceph/ceph
synced 2025-02-24 03:27:10 +00:00
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:
parent
72c9c66781
commit
805f749564
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user