问题标签 [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.

0 投票
3 回答
18625 浏览

c - 为什么在宏定义中使用 do { } while (0)?

可能重复:
为什么在 C/C++ 宏中有时会出现无意义的 do/while 和 if/else 语句?

我遇到了如下代码:

我想知道作者为什么在do { } while (0)这里使用。这有什么区别吗?

顺便说一句:代码来自 libev,ev_local.h

0 投票
2 回答
4478 浏览

c - Libev,如何将参数传递给相关的回调

我陷入了在 libev 中传递参数的情况。

通常,libev 在*receive_callback*这样的函数中接收包,这可以,但在实践中,我们需要调度一个相对的*write_callback*来根据接收到的包来处理特定的作业。例如:

我的问题是,如果write_callbackX还必须读取recv_buff 中的具体内容,我们如何将recv_buff 参数传递给callbackX?我们必须在这里承担全局变量的包袱和丑陋吗?

0 投票
2 回答
84 浏览

c - 新观察者是否看到旧的未处理事件?

如果我有一个套接字并且有人向它发送了我尚未处理的数据 via read(),现在我ev_io为它创建了一个观察者并运行它,回调会触发吗?

0 投票
1 回答
733 浏览

python - 使用 pyev 的 epool 或从 Python 中的 stdlib 中选择?

select有人在 Python 中通过Python stdlib测量 pyev 相对于标准绑定的速度和有用性吗?

使用 pyev over 有什么好处select

pyev 是由 C 扩展构建的,因此它不是可移植的解决方案。我尝试使用 PyPy 构建它,但开箱即用并没有成功。
所以我只是想知道是否值得使用它。

我知道gevent在它的 1.0 版本中使用 libev(在他们使用 libevent 之前)。他们真的需要吗?我不关心非事件循环功能(比如来自 libevent 的 dns)。

0 投票
8 回答
29653 浏览

javascript - Nodejs 事件循环

nodejs架构内部是否有两个事件循环?

  • libev/libuv
  • v8 javascript 事件循环

在 I/O 请求上,节点是否将请求排队到 libeio,然后使用 libev 通过事件通知数据的可用性,最后这些事件由 v8 事件循环使用回调处理?

基本上,libev 和 libeio 是如何集成到 nodejs 架构中的?

是否有任何文档可以清楚地了解 nodejs 内部架构?

0 投票
1 回答
1520 浏览

android-ndk - 在 android ndk 上构建 libev

我正在编写一个在 Android 上真正需要 libev(而不是 libevent)的程序。我在谷歌上搜索了很多次以找到如何构建 libev 但未成功。谁能告诉我,如何在 android 上构建 libev。非常感谢。

0 投票
2 回答
492 浏览

c++ - std::list 在 libev 回调中崩溃

我有一个 libev 写回调函数,它检查要发送到客户端的待处理数据。待处理的数据缓冲区看起来像

并且回调函数通过以下方式检查容器中是否有任何数据:

程序因分段错误而崩溃

有时在

在第二种情况下,empty() 返回 false,但调试器显示,该列表没有数据成员

它在单独的线程中运行(缓冲区是从同一个线程读取和写入的)我还尝试将其移动到主线程而不启动任何其他线程,但效果相同。

操作系统是 Ubuntu 12.04,编译器是 g++ 4.6 我在我的项目中也启用了 c++0x

0 投票
1 回答
412 浏览

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);

0 投票
1 回答
2508 浏览

httpclient - 使用 libev 的异步 HttpClient

我正在使用 libebb (http://tinyclouds.org/libebb/) 和 libev 编写一个 Web 服务器。我正在寻找一个使用 libev 事件循环的异步 httpclient。

我希望它支持 Http 1.1(流水线、keep-alives 等)。

我希望这不是一个愚蠢的问题。

0 投票
1 回答
914 浏览

c - ev_loop 在 libev 中声明在哪里?

我正在研究libev,ev_loop是libev的一个非常重要的组成部分。但是我搜索了libev源代码,找不到struct ev_loop的定义。

那么,ev_loop 应该是什么样子的呢?