文件名称:coroplusplus:用于C ++的堆栈复制用户线程库
文件大小:30KB
文件格式:ZIP
更新时间:2024-05-31 14:30:36
C++
冠++ 这是一个C ++用户线程库,它使用与相同的堆栈复制技术。 尽管尚未在生产中使用它,但我经常将其用于弹片本身(和其他系统)的基准测试。 它提供了三个不同的“事件驱动”后端kqueue(2) , select(2)和poll(2) 。 为Linux添加对/ dev / epoll的支持应该是微不足道的。 有一点我使用该库编写了大多数spdy3代理,尽管代码尚未完成。 如果有人对此感兴趣,请告诉我。 有什么想法? 这个想法是让您编写看似阻塞的代码,但实际上是在后台使用事件循环来捕获将阻塞的套接字调用。 当线程阻塞时,将当前堆栈复制到堆上,直到触发必要的事件为止(例如, wait_for_read() , wait_for_write() )。 触发事件后,将堆栈复制回原位,并且代码继续进行,就好像什么都没发生一样。 Shrapnel使用此技术来实现多种协议的高度可扩展和高性
【文件预览】:
coroplusplus-master
----event_kqueue.h(3KB)
----event_poll.h(2KB)
----coro_file.h(4KB)
----coro_bench.h(2KB)
----coro_socket.h(2KB)
----coro_buffer.h(3KB)
----event_select.h(2KB)
----sync.h(1KB)
----coro++.h(9KB)
----event_poller.h(682B)
----demo()
--------certkey.h(3KB)
--------echo_server.cc(5KB)
--------echo_client.cc(4KB)
--------smtp_server.cc(5KB)
--------Makefile(1KB)
--------cert()
----util()
--------dist.py(686B)
--------clean.py(875B)
----LICENSE(1KB)
----README.md(3KB)
----Makefile(83B)
----coro_openssl.h(5KB)
----swap.h(4KB)
----coro_s2n.h(4KB)