Fix segfault with concurrent OP_SYNCs

This commit is contained in:
Vitaliy Filippov
2020-03-10 17:00:23 +03:00
parent 31f9445030
commit 3dd1b22d55
2 changed files with 12 additions and 3 deletions
+10 -1
View File
@@ -98,10 +98,19 @@ void blockstore_impl_t::loop()
{
// try to submit ops
unsigned initial_ring_space = ringloop->space_left();
// FIXME: rework this "sync polling"
auto cur_sync = in_progress_syncs.begin();
while (cur_sync != in_progress_syncs.end())
{
continue_sync(*cur_sync++);
if (continue_sync(*cur_sync) != 2)
{
// List is unmodified
cur_sync++;
}
else
{
cur_sync = in_progress_syncs.begin();
}
}
auto cur = submit_queue.begin();
int has_writes = 0;