问题标签 [libev]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 为什么在宏定义中使用 do { } while (0)?
我遇到了如下代码:
我想知道作者为什么在do { } while (0)
这里使用。这有什么区别吗?
顺便说一句:代码来自 libev,ev_local.h
c - Libev,如何将参数传递给相关的回调
我陷入了在 libev 中传递参数的情况。
通常,libev 在*receive_callback*这样的函数中接收包,这可以,但在实践中,我们需要调度一个相对的*write_callback*来根据接收到的包来处理特定的作业。例如:
我的问题是,如果write_callbackX
还必须读取recv_buff 中的具体内容,我们如何将recv_buff 参数传递给callbackX?我们必须在这里承担全局变量的包袱和丑陋吗?
c - 新观察者是否看到旧的未处理事件?
如果我有一个套接字并且有人向它发送了我尚未处理的数据 via read()
,现在我ev_io
为它创建了一个观察者并运行它,回调会触发吗?
python - 使用 pyev 的 epool 或从 Python 中的 stdlib 中选择?
select
有人在 Python 中通过Python stdlib测量 pyev 相对于标准绑定的速度和有用性吗?
使用 pyev over 有什么好处select
?
pyev 是由 C 扩展构建的,因此它不是可移植的解决方案。我尝试使用 PyPy 构建它,但开箱即用并没有成功。
所以我只是想知道是否值得使用它。
我知道gevent在它的 1.0 版本中使用 libev(在他们使用 libevent 之前)。他们真的需要吗?我不关心非事件循环功能(比如来自 libevent 的 dns)。
javascript - Nodejs 事件循环
nodejs架构内部是否有两个事件循环?
- libev/libuv
- v8 javascript 事件循环
在 I/O 请求上,节点是否将请求排队到 libeio,然后使用 libev 通过事件通知数据的可用性,最后这些事件由 v8 事件循环使用回调处理?
基本上,libev 和 libeio 是如何集成到 nodejs 架构中的?
是否有任何文档可以清楚地了解 nodejs 内部架构?
android-ndk - 在 android ndk 上构建 libev
我正在编写一个在 Android 上真正需要 libev(而不是 libevent)的程序。我在谷歌上搜索了很多次以找到如何构建 libev 但未成功。谁能告诉我,如何在 android 上构建 libev。非常感谢。
c++ - std::list 在 libev 回调中崩溃
我有一个 libev 写回调函数,它检查要发送到客户端的待处理数据。待处理的数据缓冲区看起来像
并且回调函数通过以下方式检查容器中是否有任何数据:
程序因分段错误而崩溃
有时在
在第二种情况下,empty() 返回 false,但调试器显示,该列表没有数据成员
它在单独的线程中运行(缓冲区是从同一个线程读取和写入的)我还尝试将其移动到主线程而不启动任何其他线程,但效果相同。
操作系统是 Ubuntu 12.04,编译器是 g++ 4.6 我在我的项目中也启用了 c++0x
c++ - 关于 ev_default_fork 的 libev 标志
我在学习libev
。但我不ev_default_fork
明白ev_loop
. 这是关闭执行的问题吗?喜欢FD_CLOEXEC fcntl()
国旗吗?什么时候需要设置标志?什么情况下需要这个标志?这是对文档的描述:
此函数设置一个标志,导致后续 ev_loop 迭代重新初始化具有内核状态的后端的内核状态。尽管有这个名字,你可以随时调用它,但是在分叉之后,在子进程(或子进程和父进程,但这又没有意义)中最有意义。在使用任何 libev 函数之前,您必须在子进程中调用它,并且它只会在下一次 ev_loop 迭代时生效。
另一方面,当且仅当您想在子进程中使用事件库时,您才需要在子进程中调用此函数。如果你只是 fork+exec,你根本不需要调用它。
该函数本身非常快,并且在分叉后调用它通常不是问题。为了简单起见,该函数将非常适合调用 pthread_atfork: pthread_atfork (0, 0, ev_default_fork);
httpclient - 使用 libev 的异步 HttpClient
我正在使用 libebb (http://tinyclouds.org/libebb/) 和 libev 编写一个 Web 服务器。我正在寻找一个使用 libev 事件循环的异步 httpclient。
我希望它支持 Http 1.1(流水线、keep-alives 等)。
我希望这不是一个愚蠢的问题。
c - ev_loop 在 libev 中声明在哪里?
我正在研究libev,ev_loop是libev的一个非常重要的组成部分。但是我搜索了libev源代码,找不到struct ev_loop的定义。
那么,ev_loop 应该是什么样子的呢?