#pragma once #include #include class WaitQueue { public: WaitQueue(); ~WaitQueue(); void enqueue(Thread&); void wake_one(); void wake_all(); private: typedef IntrusiveList ThreadList; ThreadList m_threads; };