问题标签 [libuv]

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 投票
2 回答
771 浏览

libuv - libuv 记录最佳实践?

我的程序中有一个 std::stringstream ,它会定期(使用计时器)刷新到日志文件中。刷新和计时器在默认运行循环上。

应用程序的其他部分只是附加到该 std::stringstream ,计时器负责其余部分。我确实限制了字符串流的大小(到 1mb),所以如果流是“满的”,我会丢弃消息。

我只是想知道,这是最佳实践吗?

  • 表现?在主线程上可以处理这个 IO 吗?我能做得更好吗?
  • 严重错误?问题可能出在我对 libuv 的使用中,这可能意味着基于 libuv 的日志记录会被破坏?

node.js 如何处理日志记录?

0 投票
1 回答
401 浏览

c++ - libuv 事件循环:准备句柄并检查句柄使用情况

在 libuv 事件循环中调用prepare handle callback和的原因是什么?check handle callback

0 投票
1 回答
184 浏览

c++ - 关于 libuv 来源的一些问题?

最近看了libuv的源码。阅读QUEUE.h时有一些问题

首先: 宏定义如下:</p>

我可以将 QUEUE_PREV(q) 重新定义为:

他们之间有什么区别?

其次: 我尝试下面的代码:

结果在控制台上是一样的,但是为什么呢?“*”不起作用吗?我用VS2013编写了这段代码。

0 投票
1 回答
1194 浏览

c++ - libuv + C++ 段错误

我正在用 libuv 为 C++ 中的流编写一个包装器,但它有段错误,我不知道为什么。流类:

以及实施

在主文件中,我这样做:

但是,一旦我运行它,它就会在uv_run语句中出现段错误。回溯:

但是,如果我将 uv_run 放入Stream::Write方法中,它就可以正常工作。我怎样才能解决这个问题?


编辑

我现在在堆上而不是在堆栈上分配管道,但它仍然给我一个段错误。我uv_pipe_t将标题更改为uv_pipe_t*,现在实现更改为:

来自 GDB 的回溯:

0 投票
2 回答
4057 浏览

c - libuv simple echo client

I'm trying to develop a simple echo client using unix pipes for the following example code: https://github.com/nikhilm/uvbook/blob/master/code/pipe-echo-server/main.c

this is my client code:

But as soon as I run it, it segfaults. The server does give me a message that a process has connected. A backtrace from GDB:

0 投票
1 回答
971 浏览

node.js - 当没有新事件排队时,node.js 应用程序如何继续运行?

我的问题是 node.js 应用程序(例如 http 服务器)如​​何在没有新事件出现的情况下继续运行?

我认为当没有新事件排队时,libuv 事件循环会终止。

是否类似于为事件注册的事件侦听器的 while(true) {} 循环?

这是我的问题的一个简单代码示例:

谢谢

编辑:我们从libuv io 循环文档中知道,循环必须在每次循环迭代开始时处于活动状态,这意味着发生了更多事件,因此注册了更多回调以执行。

在此示例中,注册了一个事件侦听器,但在处理单个事件后程序退出,因为在下一次循环迭代之前没有触发更多事件。

但在这个例子中,由于活动定时器,程序无限期地继续。

那么在 http 服务器示例中,是什么让循环保持活动状态(活动和 ref'd 句柄)?

0 投票
1 回答
258 浏览

c++ - C/CPP 宏或预处理器来处理方法的多个版本

node addon在跨多个版本的节点编译时如何处理我的方法的多个版本。例如:uv_inet_ptonand uv_inet_ptonof nodeversion0.10*不同于0.12.*. 这些版本的返回类型不同。我可以通过定义宏或预处理器来处理这种情况吗?

0 投票
1 回答
788 浏览

libuv - 如何在多线程环境中使用 uv_accept?

我发现相同的两个参数(服务器和句柄)uv_accept都是必需的uv_loop。但我想在有自己的子线程中创建新的连接句柄uv_loop。我应该怎么办?

0 投票
1 回答
774 浏览

c++ - Nodejs插件uv_queue_work分段错误

我正在尝试创建一个非常小的 nodejs 插件示例。我的 C++ 代码是这样的:

在 js 中,这是:

当我调用myModule.foo函数时,进程以分段错误终止。

我试图添加uv_run(loop, UV_RUN_DEFAULT),但这会阻塞主线程。

我哪里做错了?谢谢

0 投票
1 回答
70 浏览

python - Feedparser - TypeError('a float is required',)

我正在使用guvfeedparser同时解析多个提要。以下是我的代码:

但是,我得到以下输出:

我在使用时遇到了类似的问题Eventlet,但在本机 Python 3threading库中没有。