From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id DA97946970E for ; Fri, 20 Dec 2019 17:50:47 +0300 (MSK) Received: by mail-lf1-f65.google.com with SMTP id 15so7265516lfr.2 for ; Fri, 20 Dec 2019 06:50:47 -0800 (PST) Date: Fri, 20 Dec 2019 17:50:44 +0300 From: Cyrill Gorcunov Message-ID: <20191220145044.GA18623@uranus> References: <20191217125420.20881-1-gorcunov@gmail.com> <20191217125420.20881-2-gorcunov@gmail.com> <20191220074847.GF30445@atlas> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191220074847.GF30445@atlas> Subject: Re: [Tarantool-patches] [PATCH v6 1/4] coio: Export helpers and provide coio_read_fd_timeout List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Konstantin Osipov Cc: tml On Fri, Dec 20, 2019 at 10:48:47AM +0300, Konstantin Osipov wrote: > * Cyrill Gorcunov [19/12/17 15:57]: > > There is no reason to hide functions. In particular > > we will use coio_write_fd_timeout and coio_read_fd_timeout > > for popen. > > AFAIU the only difference between the new function and > coio_read_timeout() is that the new function works without > struct coio* object, but uses coio_wait(), which creates/ > destroys this object on demand. Yes. This allows us to reuse it instead of code duplication. > > Could you provide a rationale for this? coio_wait has to call > EPOLL_CTL_ADD/EPOLL_CTL_DEL on every wait, so it tripples the > number of syscalls per wait. But how else we can do that? libev uses poll internally to find out if there some "event" in the event queue (timer event, io event and such). Could you please elaborate which idea you have? Indeed every time we start io on fd, the libev puts this fd into watchee list to be notified if there some event to handle. I must admit I don't see an other way. > > On the other hand I realize that it's not super important > for popen IO, but still I don't understand *why* you need this.