对uv_write的多个同时调用有时无法正常工作

时间:2017-02-22 05:37:28

标签: c++ node.js libuv

我正在测试我使用libuv开发的简单服务器架构。 每当服务器从客户端接收到某些内容时,它就会通过' \ r'并向所有观察者广播每条消息。

然后,我用来测试的观察者用相同的原始消息(echo服务器)调用server-> write()方法。

问题是,每次运行程序时,它都会随机运行或不运行。

如果它不起作用,则错误消息为:

Assertion failed: (req->write_index < req->nbufs), function uv__write, file src/unix/stream.c, line 869. Abort trap: 6

完整代码在此处:https://github.com/ghostec/film

大部分代码都在此文件中:https://github.com/ghostec/film/blob/master/server/server.cpp

编辑:显然这与在uv_queue_work中调用uv_write这一事实有关。因为它们都写入同一个处理程序,如果在libuv循环中调用它们时出现故障,就会发生一些不好的事情。但是,我不确定我的评估是否正确。

0 个答案:

没有答案