15 #ifndef STXXL_IO_DISK_QUEUES_HEADER
16 #define STXXL_IO_DISK_QUEUES_HEADER
20 #include <stxxl/bits/namespace.h>
21 #include <stxxl/bits/singleton.h>
22 #include <stxxl/bits/io/iostats.h>
23 #include <stxxl/bits/io/request_queue_impl_qwqr.h>
26 __STXXL_BEGIN_NAMESPACE
37 friend class singleton<disk_queues>;
40 typedef request_queue_impl_qwqr request_queue_type;
42 typedef stxxl::int64 DISKID;
43 typedef std::map<DISKID, request_queue_type *> request_queue_map;
46 request_queue_map queues;
49 stxxl::stats::get_instance();
55 #ifdef STXXL_HACK_SINGLE_IO_THREAD
58 if (queues.find(disk) == queues.end())
61 queues[disk] =
new request_queue_type();
63 queues[disk]->add_request(req);
76 #ifdef STXXL_HACK_SINGLE_IO_THREAD
79 if (queues.find(disk) != queues.end())
88 for (request_queue_map::iterator i = queues.begin(); i != queues.end(); i++)
99 for (request_queue_map::iterator i = queues.begin(); i != queues.end(); i++)
100 i->second->set_priority_op(op);
106 __STXXL_END_NAMESPACE
108 #endif // !STXXL_IO_DISK_QUEUES_HEADER