From owner-freebsd-questions@FreeBSD.ORG Mon Apr 16 07:36:08 2012 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 306C5106564A for ; Mon, 16 Apr 2012 07:36:08 +0000 (UTC) (envelope-from m.zitzen@o-notation.org) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.10]) by mx1.freebsd.org (Postfix) with ESMTP id B03C88FC14 for ; Mon, 16 Apr 2012 07:36:07 +0000 (UTC) Received: from kant.vitec-loesung.de (p4FE99871.dip.t-dialin.net [79.233.152.113]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0Lwnl2-1SCv850ON6-016bH3; Mon, 16 Apr 2012 09:36:01 +0200 Received: from [10.0.0.46] (neuromancer.vitec-loesung.de [10.0.0.46]) by kant.vitec-loesung.de (Postfix) with ESMTP id 9FD252A23E for ; Mon, 16 Apr 2012 09:34:46 +0200 (CEST) Message-ID: <4F8BCB86.10805@o-notation.org> Date: Mon, 16 Apr 2012 09:34:30 +0200 From: Matthias Zitzen User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: freebsd-questions@freebsd.org References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:gzax03i9lsk9OedGdTJpPopS8sBReWrmTq9SqzNLW83 Aq1V0GXmywk+HCPjwVT5A0ESo0gSdnIkKgjvuw6pK/comcUdnH 0AM5ilqBUokL6KXISEr398BgY2gRp5B9sXw0RavJmFXZ/KDgtX YarIGUdJCPyjIaCR9KtyTCrlGg9T3EJpyLqkiWA8t1suzQv+8n lfz/XVIRoHSEypywCN6kHblvZMmQSDolKTijtDNz0CApnfC45y yMrfVmE3lKmUpcnLAkRUqBopBP1jzjuGUyAxTIlfWNXSgOgcLX GY2rVIuWOkU9fEsqGPX5n9E6hptTqaQGJY7w14fARbRiKsz9DP zn8Gd1STg28J4rMk594s= Subject: Re: Using kqueue with 2 threads X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Apr 2012 07:36:08 -0000 Hello, Am 10.04.2012 21:52, schrieb Ben Short: >> EV_SET(&ke, fd, EVFILT_VNODE, EV_ADD, NOTE_DELETE | NOTE_RENAME | >> NOTE_EXTEND, 0, NULL); >> >> if (kevent(kq,&ke, 1, NULL, 0, NULL) == -1) { >> std::cerr<< "kevent produced error: "<< strerror(errno)<< >> std::endl; >> }[/CODE] >> Did i understand right, that after registering and firing one event the kevent() function doesn't block any more? If so, register the events with EV_ADD | EV_CLEAR. With this flag, the event state is cleared and kevent() is still blocking(man kqueue). That flag was solving my problem... Matthias