From owner-freebsd-hackers@FreeBSD.ORG Wed Mar 25 09:00:51 2015 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5A126C3D for ; Wed, 25 Mar 2015 09:00:51 +0000 (UTC) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8329BB1 for ; Wed, 25 Mar 2015 09:00:50 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.9/8.14.9) with ESMTP id t2P90fDU018059 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Wed, 25 Mar 2015 11:00:41 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua t2P90fDU018059 Received: (from kostik@localhost) by tom.home (8.14.9/8.14.9/Submit) id t2P90fQb018055; Wed, 25 Mar 2015 11:00:41 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 25 Mar 2015 11:00:41 +0200 From: Konstantin Belousov To: Jilles Tjoelker Subject: Re: kevent behavior Message-ID: <20150325090041.GY2379@kib.kiev.ua> References: <550A6DA2.1070004@gmail.com> <20150324221541.GA67584@stack.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150324221541.GA67584@stack.nl> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on tom.home Cc: freebsd-hackers@FreeBSD.org, Ivan Radovanovic X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Mar 2015 09:00:51 -0000 On Tue, Mar 24, 2015 at 11:15:41PM +0100, Jilles Tjoelker wrote: > Fortunately, EVFILT_USER provides an easy way to wake up a thread > blocked in kevent(). > > If kevent() was implemented as a cancellation point, pthread_cancel() > would be another option, but it is not. Do you consider it is possible to make kqueue(2) cancellation point ? Susv4 is very explicit about functions it allows to handle cancellation. Might be, it is time for kqueue2(3), which would take flags. In addition to allowing cancellation, it could take close-on-exec flag. It is somewhat non-trivial to implement, at least I do not want to make kevent2().