libuv

    0热度

    1回答

    SO_REUSEPORT的问题,我有一个基于libuv在C UDP服务器,我们有一个: 主线:接收的UDP数据包,并将其排入到4个队列中的一个并调用4个工作人员之一的出队回调。主线程是bind()到端口9930 4工作线程:在回调调用中从相应队列中出队并返回响应。每个线程也结合到同一地址 现在,当我发出请求(src_port:A和dest_port:9930)的UDP服务器,该服务器与src_po

    2热度

    1回答

    我知道事件循环在单个进程上运行(因此,在单个内核上),但我想知道当我从那里启动线程时会发生什么。 如果我使用uv_thread_create或uv_queue_work启动多个线程,它们将运行在多个内核上(如果可用)?我希望他们这样做,因为(至少在Unix上)所有东西都是基于能够扩展到多个内核的pthread,但我不知道。 此外,我现在还无法编写代码来检查该问题,因为我在移动设备上。我刚刚发布,看

    1热度

    1回答

    我正在为Node创建一个C++插件。我想多次运行uv_queue_work而不必睡主线程。任何想法如何做到这一点? 到目前为止,我已经做到了这一点: void main(const FunctionCallbackInfo<Value>& args) { //here goes my main code //Here I schedule the worker, to run BEFOREm

    2热度

    2回答

    我正在尝试从Datastax网站构建cpp-driver。我在Ubuntu 12.04上。在说明书中写入将ppa:linuxjedi/ppa添加到存储库,以便安装libuv。但我越来越 Package libuv-dev is not available, but is referred to by another package. This may mean that the package

    0热度

    1回答

    在对Node.js和libuv进行一些研究时,我启动了一个简单的节点服务器UV_THREADPOOL_SIZE=1,并查看了pstree以查看它真正使用的线程数。 对Node.js的0.10 pstree -p | grep node产生 node(5157)-+-{node}(5158) `-{node}(5162) 为了让事情有点复杂我也试过同样的0.12和3.3 iojs。每个版本的线程数都

    9热度

    1回答

    阅读this great answer有关节点的线程性质, 后,我开始与UV_THREADPOOL_SIZE系统变量发挥改变线程池的大小,我发现一些有趣的事情: 当我设置 process.env.UV_THREADPOOL_SIZE = 10; 我得到15线程在我的节点进程(我认为它应该是10 + 1主节点线程= 11)。 看一看我的脚本: process.env.UV_THREADPOOL_

    0热度

    1回答

    如果我在for循环中执行多个异步http请求,那么这些套接字被添加到事件循环的顺序是确定性的还是保证循环执行的顺序? function makeRequest(n) { http.get("http://www.google.com/index.html?=" + n, function(res) { console.log("Got response: " + res.sta

    0热度

    1回答

    有谁知道为什么使用函子结构而不是实际函数作为回调时使用libuv segfault。在下面的例子中,我创建了结构CB来代替connection_cb。在运算符()中发生段错误。 #include <uv.h> #include <stdio.h> #include <stdlib.h> uv_buf_t alloc_buffer(uv_handle_t * handle, size_t

    0热度

    1回答

    我针对定义为Linux字符设备的API编写应用程序,将API的大部分有趣部分定义为ioctl()调用,当驱动程序通过poll()提取POLLPRI时,将异步事件传递给应用程序。我想尝试使用libuv来改进这个应用程序。 我试过了一个驱动程序期望read()调用的设备,因此它引发了POLLIN。我用了UV_READABLE的uv_poll_t,这很好。但是,至少有两个设备在改变状态时仅使用POLLP

    1热度

    1回答

    使用Libuv,我已经实现了调用另一个TCP服务器B. 服务器A状态越来越请求,我送使用单个请求到服务器B一个TCP服务器A上的多个TCP请求TCP连接从A建立到B. 鉴于Libuv是异步和回调导向的,我如何区分我得到服务器B的响应?即如何将正确的结果发送回服务器A的客户端? 该文档说,uv_read_cb回调将被调用多次。我如何知道uv_read_cb被调用的原始请求?