All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Wong <e@80x24.org>
To: David Turner <novalis@novalis.org>
Cc: Duy Nguyen <pclouds@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH v12 04/20] index-helper: new daemon for caching index and related stuff
Date: Sun, 26 Jun 2016 08:53:47 +0000	[thread overview]
Message-ID: <20160626085347.GA4053@dcvr.yhbt.net> (raw)
In-Reply-To: <576ED9A2.8070202@novalis.org>

David Turner <novalis@novalis.org> wrote:
> On 06/25/2016 10:33 AM, Duy Nguyen wrote:
> >>+               /*
> >>+                * Our connection to the client is blocking since a client
> >>+                * can always be killed by SIGINT or similar.
> >>+                */
> >>+               set_socket_blocking_flag(client_fd, 0);
> >
> >Out of curiosity, do we really need this? I thought default behavior
> >was always blocking (and checked linux kernel, it seemed to agree with
> >me). Maybe for extra safety because other OSes may default to
> >something else?
> 
> Yes -- see this bug report for details:
> https://bugs.python.org/issue7995

I realize it's an issue with BSDs, but it still seems
unnecessary, here:

1) the packet_read => get_packet_data => read_in_full => xread
   call chain already poll()s on EAGAIN/EWOULDBLOCK.
   write_in_full => xwrite busy loops on EAGAIN/EWOULDBLOCK.
   xwrite should probably poll, too; but I guess EAGAIN is
   uncommon with small writes.

2) you create the listen fd you call accept on and never set
   non-blocking on it.  It might be an issue one day if
   we use socket activation and inherit a socket, but the
   retries mentioned in 1) should cover that case.

  parent reply	other threads:[~2016-06-26  8:54 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-19 21:45 [PATCH v12 00/20] index-helper/watchman David Turner
2016-05-19 21:45 ` [PATCH v12 01/20] read-cache.c: fix constness of verify_hdr() David Turner
2016-05-19 21:45 ` [PATCH v12 02/20] read-cache: allow to keep mmap'd memory after reading David Turner
2016-05-19 21:45 ` [PATCH v12 03/20] pkt-line: add gentle version of packet_write David Turner
2016-06-25 14:01   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 04/20] index-helper: new daemon for caching index and related stuff David Turner
2016-06-17 16:43   ` Christian Couder
2016-06-25 14:15     ` Duy Nguyen
2016-06-25 14:33   ` Duy Nguyen
2016-06-25 19:21     ` David Turner
2016-06-26  4:27       ` Duy Nguyen
2016-06-26 19:29         ` David Turner
2016-06-27  5:50           ` Duy Nguyen
2016-06-26  8:53       ` Eric Wong [this message]
2016-06-26 17:49         ` David Turner
2016-06-26 23:25           ` Eric Wong
2016-05-19 21:45 ` [PATCH v12 05/20] index-helper: add --strict David Turner
2016-06-25 14:43   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 06/20] daemonize(): set a flag before exiting the main process David Turner
2016-05-19 21:45 ` [PATCH v12 07/20] index-helper: add --detach David Turner
2016-06-25 14:46   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 08/20] index-helper: log warnings David Turner
2016-05-19 21:45 ` [PATCH v12 09/20] read-cache: add watchman 'WAMA' extension David Turner
2016-06-25 14:59   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 10/20] watchman: support watchman to reduce index refresh cost David Turner
2016-06-17 16:01   ` Christian Couder
2016-05-19 21:45 ` [PATCH v12 11/20] index-helper: use watchman to avoid refreshing index with lstat() David Turner
2016-06-17 13:02   ` Duy Nguyen
2016-06-17 21:39     ` David Turner
2016-06-19  5:07     ` [PATCH v12 11/20] index-helper: use watchman to avoid refreshing, " David Turner
2016-06-23  6:24       ` David Turner
2016-06-23 15:33         ` Duy Nguyen
2016-06-25 16:27   ` [PATCH v12 11/20] index-helper: use watchman to avoid refreshing " Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 12/20] update-index: enable/disable watchman support David Turner
2016-06-25 16:31   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 13/20] unpack-trees: preserve index extensions David Turner
2016-05-19 21:45 ` [PATCH v12 14/20] watchman: add a config option to enable the extension David Turner
2016-05-19 21:45 ` [PATCH v12 15/20] index-helper: kill mode David Turner
2016-05-19 21:45 ` [PATCH v12 16/20] index-helper: don't run if already running David Turner
2016-06-17 16:18   ` Christian Couder
2016-05-19 21:45 ` [PATCH v12 17/20] index-helper: autorun mode David Turner
2016-06-25 16:35   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 18/20] index-helper: optionally automatically run David Turner
2016-06-25 16:38   ` Duy Nguyen
2016-05-19 21:45 ` [PATCH v12 19/20] trace: measure where the time is spent in the index-heavy operations David Turner
2016-05-19 21:45 ` [PATCH v12 20/20] index-helper: indexhelper.exitafter config David Turner
2016-06-25 13:28 ` [PATCH v12 00/20] index-helper/watchman Duy Nguyen
2016-06-25 16:42   ` Duy Nguyen
2016-06-26  4:08   ` David Turner

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=20160626085347.GA4053@dcvr.yhbt.net \
    --to=e@80x24.org \
    --cc=git@vger.kernel.org \
    --cc=novalis@novalis.org \
    --cc=pclouds@gmail.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.