コード例 #1
0
ファイル: io_processor.hpp プロジェクト: aykgb/test
    void enqueue_io(IoRef &&io) {
        int id = (io->offset / (OBJECT_SIZE / BLOCK_SIZE)) % concurrence;
        std::unique_lock<std::mutex> lock(io_datas[id]->mtx);
        lock.unlock();
        io_datas[id]->cond.notify_one();

        perf.io_started++;
        if(perf.get_io_flight() > io_capacity) {
            std::unique_lock<std::mutex> prod_lock(prod_mtx);
            prod_cond.wait(prod_lock);
        }
    }
コード例 #2
0
ファイル: io_processor.hpp プロジェクト: aykgb/test
 uint32_t get_io_processing() {
     return perf.get_io_flight();
 }