kqueue

    9热度

    1回答

    我正在使用GO来检查一个进程(不是父进程)是否已经终止,基本上与FreeBSD中的pwait命令类似,但是写入go。 目前我正在一个for loop与kill -0,但我注意到,CPU的使用率是非常高的99%这种方法,这里是代码: package main import ( "fmt" "os" "strconv" "syscall" "time

    0热度

    1回答

    处理kqueue信号时有没有办法获得siginfo_t结构?

    2热度

    1回答

    我编写了一个函数来观察一个文件(给出一个fd)增长到一定的大小,包括超时。我使用kqueue()/kevent()等待文件被“扩展”,但在得到文件增长的通知后,我必须检查文件大小(并将其与所需大小进行比较)。这似乎很容易,但我无法找到一种在POSIX中可靠地执行此操作的方法。 注意:如果文件在指定的时间内根本不增长,超时将会命中。所以,这不是一个绝对超时,只是文件发生一些增长的超时。我在OS X上

    2热度

    1回答

    如果一个线程(如X)正在等待epoll_wait(),另一个线程(比如Y)会调用epoll_ctl()来注册对文件描述符9的兴趣。先前在线程X中调用epoll_wait()能否返回线程Y添加的文件描述符9?对epoll_wait()的初始呼叫在任何时候都不会在中间返回。 现在我想比较一下,并询问操作系统中另外两个轮询调用的相关问题。 poll()和kqueue 如果回答上述问题是真的,那么有没有办

    0热度

    1回答

    我需要观察一个包含多个子目录的目录,每个子目录都有我需要监视的文件添加,修改和删除的文件。 我找到了一些示例代码,并且为了使它工作而不得不稍微修改它,但它并不完全符合我的需要。它可以找到文件重命名,或在目录(但不是子目录)中删除,但不响应文件修改。 我可以使用Google搜索找到的方法是单独监视每个文件;但是,我有几十万个文件要监视,并且每个文件描述符都可能不明智。 在FreeBSD下有办法做我需

    1热度

    1回答

    下面是两个小脚本,显示我现在如何使用kevents,并重现我的问题。 kqtest.py: import socket import select import threading server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_sock.setsockopt(socket.SOL_SOCKET

    3热度

    1回答

    我最近在读Redis。 Redis基于I/O多路复用实现了一个简单的事件驱动库。 Redis的说,它会选择系统所支持的最佳复用,并给出了下面的代码: /* Include the best multiplexing layer supported by this system. * The following should be ordered by performances, descendi

    1热度

    1回答

    我将Linux中使用sys/inotify.h的日志监视程序移植到OS X,该OS将使用kqueue。这个想法是,kqueue将使用文件描述符来监视文件的更改。一旦文件发生了变化,一个不同的函数将传递一个文件指针并扫描文件的变化,寻找特定的数据。原始文件数据将被打印到标准输出并且数据被扫描到标准错误。 kqueues似乎正在监视日志,并且每次更改返回正确的字节数。这是扫描功能,似乎没有正常工作。

    5热度

    1回答

    的kqueue mechanism有一个事件标志,EV_RECEIPT,它根据链接的手册页: ...是使批量更改到kqueue的 不会消耗任何未决的事件非常有用。当作为输入通过时, 强制EV_ERROR始终返回。当一个过滤器是 成功添加的数据字段将为零。然而 我的理解是,它是微不足道的建立到kqueue的大量修改而不消耗任何未决事件,简单地通过使0为nevents参数kevent,因此绘图没有从队

    1热度

    1回答

    我决定尝试使用Crystal来检查其相对于Ruby的速度和兼容性。我将预先构建的.pkg安装程序下载到我的macOS Sierra系统。我的小测试程序似乎运行,但都产生了以下消息: $ crystal --version [warn] kq_init: detected broken kqueue; not using.: Undefined error: 0 Crystal 0.19.4 [