boost::lockfree::spsc_queue and boost::asio
boost::lockfree::spsc_queue and boost::asio
我想从boost::asio::async_read
呼叫直接接收到boost::lockfree:spsc_queue
(或者,或者,boost::circular_buffer
(。看起来我需要编写一个包装器才能使spsc_queue成为MutableBuffer
.
任何人都可以分享一些关于这是否可能以及如何实现这一目标的指导吗?
非常感谢
使用 asio
时,每个接收缓冲区必须是连续的。
由于boost::circular_buffer
不是连续的,因此用作字节缓冲区相当不方便。不过,您仍然可以将其作为 2 个具有分散聚集 I/O 的缓冲区呈现给asio
。
用于 I/O 的高效且方便的循环缓冲区是映射两次的内存页区域,它们之间没有任何填充。这样,您可以使用一个read
系统调用读取循环缓冲区,而无需使用分散-收集 I/O,也不必在解析/读取其内容时处理缓冲区不连续性。
相关文章:
- SWIG and Boost::variant
- boost::lockfree::spsc_queue and boost::asio
- boost.spirit x3 move_to and list ast member
- Use boost strand and std::mutex
- boost::spirit::qi and boost::phoenix::push_back
- boost::filesystem::path.parent_path() and whitespace
- Boost mpl::vector and hana
- 为什么BOOST :: fileSystem :: path and std :: filesystem ::路径含量含
- Boost Asio and OpenSSL 1.1.0
- Difference between boost::thread and std::thread
- Boost cpp and Visual Studio 2015
- boost::range_iterator and boost::iterator_range confusion
- Natvis Visual Studio 2012 Boost Vector and Matrix
- BOOST :: simel_lock and Boost :: shared_lock for读者作者锁
- C++, TR1, Regex and Boost
- Flask, boost::python and threads
- ffmpeg and boost::asio NULL pointer
- Boost:bind and Boost::function
- Boost, Windows, and QtCreator
- CLion and Boost 1.60.0