Tarantool development patches archive
 help / color / mirror / Atom feed
From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Konstantin Osipov <kostja.osipov@gmail.com>
Cc: tml <tarantool-patches@dev.tarantool.org>
Subject: Re: [Tarantool-patches] [PATCH v6 1/4] coio: Export helpers and provide coio_read_fd_timeout
Date: Fri, 20 Dec 2019 17:50:44 +0300	[thread overview]
Message-ID: <20191220145044.GA18623@uranus> (raw)
In-Reply-To: <20191220074847.GF30445@atlas>

On Fri, Dec 20, 2019 at 10:48:47AM +0300, Konstantin Osipov wrote:
> * Cyrill Gorcunov <gorcunov@gmail.com> [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.

  reply	other threads:[~2019-12-20 14:50 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-17 12:54 [Tarantool-patches] [PATCH v6 0/4] popen: Add ability to run external process Cyrill Gorcunov
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 1/4] coio: Export helpers and provide coio_read_fd_timeout Cyrill Gorcunov
2019-12-20  7:48   ` Konstantin Osipov
2019-12-20 14:50     ` Cyrill Gorcunov [this message]
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 2/4] popen: Introduce a backend engine Cyrill Gorcunov
2019-12-20  8:11   ` Konstantin Osipov
2019-12-20 11:52     ` Cyrill Gorcunov
2019-12-20 12:04       ` Konstantin Osipov
2019-12-20 12:10         ` Cyrill Gorcunov
2019-12-20 12:11     ` Alexander Turenko
2019-12-26  7:14   ` Konstantin Osipov
2019-12-26  7:19     ` Cyrill Gorcunov
2020-01-09 11:23     ` Cyrill Gorcunov
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 3/4] popen/lua: Add popen module Cyrill Gorcunov
2019-12-20 15:41   ` Maxim Melentiev
2019-12-17 12:54 ` [Tarantool-patches] [PATCH v6 4/4] popen/test: Add base test cases Cyrill Gorcunov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191220145044.GA18623@uranus \
    --to=gorcunov@gmail.com \
    --cc=kostja.osipov@gmail.com \
    --cc=tarantool-patches@dev.tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v6 1/4] coio: Export helpers and provide coio_read_fd_timeout' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox