Add set_immediate to ringloop and use it for bs/osd ops to prevent reenterability issues
This commit is contained in:
@@ -119,6 +119,7 @@ struct ring_consumer_t
|
||||
|
||||
class ring_loop_t
|
||||
{
|
||||
std::vector<std::function<void()>> immediate_queue, immediate_queue2;
|
||||
std::vector<ring_consumer_t*> consumers;
|
||||
struct ring_data_t *ring_datas;
|
||||
int *free_ring_data;
|
||||
@@ -143,6 +144,10 @@ public:
|
||||
}
|
||||
return sqe;
|
||||
}
|
||||
inline void set_immediate(const std::function<void()> cb)
|
||||
{
|
||||
immediate_queue.push_back(cb);
|
||||
}
|
||||
inline int submit()
|
||||
{
|
||||
return io_uring_submit(&ring);
|
||||
|
||||
Reference in New Issue
Block a user