From: David Turner <dturner@twopensource.com>
To: git@vger.kernel.org, pclouds@gmail.com, aevarb@gmail.com,
jeffhost@microsoft.com
Subject: [PATCH v3 06/16] index-helper: add --detach
Date: Wed, 6 Apr 2016 18:11:52 -0400 [thread overview]
Message-ID: <1459980722-4836-7-git-send-email-dturner@twopensource.com> (raw)
In-Reply-To: <1459980722-4836-1-git-send-email-dturner@twopensource.com>
From: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
We detach after creating and opening the socket, because otherwise
we might return control to the shell before index-helper is ready to
accept commands. This might lead to flaky tests.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
Documentation/git-index-helper.txt | 3 +++
index-helper.c | 11 +++++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-index-helper.txt b/Documentation/git-index-helper.txt
index b177fb8..bb344cf 100644
--- a/Documentation/git-index-helper.txt
+++ b/Documentation/git-index-helper.txt
@@ -31,6 +31,9 @@ OPTIONS
for reading an index, but because it will happen in the
background, it's not noticable. `--strict` is enabled by default.
+--detach::
+ Detach from the shell.
+
NOTES
-----
$GIT_DIR/index-helper.path is a symlink to a Unix domain socket in
diff --git a/index-helper.c b/index-helper.c
index 8288e30..10f29f5 100644
--- a/index-helper.c
+++ b/index-helper.c
@@ -15,7 +15,7 @@ struct shm {
static struct shm shm_index;
static struct shm shm_base_index;
-static int to_verify = 1;
+static int daemonized, to_verify = 1;
static void release_index_shm(struct shm *is)
{
@@ -34,6 +34,8 @@ static void cleanup_shm(void)
static void cleanup(void)
{
+ if (daemonized)
+ return;
unlink(git_path("index-helper.path"));
cleanup_shm();
}
@@ -289,7 +291,7 @@ static void make_socket_path(struct strbuf *path)
int main(int argc, char **argv)
{
const char *prefix;
- int idle_in_seconds = 600;
+ int idle_in_seconds = 600, detach = 0;
int fd;
struct strbuf socket_path = STRBUF_INIT;
struct option options[] = {
@@ -297,6 +299,7 @@ int main(int argc, char **argv)
N_("exit if not used after some seconds")),
OPT_BOOL(0, "strict", &to_verify,
"verify shared memory after creating"),
+ OPT_BOOL(0, "detach", &detach, "detach the process"),
OPT_END()
};
@@ -326,6 +329,10 @@ int main(int argc, char **argv)
die(_("failed to delete old index-helper.path"));
if (symlink(socket_path.buf, git_path("index-helper.path")))
die(_("failed to symlink socket path into index-helper.path"));
+
+ if (detach && daemonize(&daemonized))
+ die_errno(_("unable to detach"));
+
loop(fd, idle_in_seconds);
return 0;
--
2.4.2.767.g62658d5-twtrsrc
next prev parent reply other threads:[~2016-04-06 22:13 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-06 22:11 [PATCH v3 00/16] index-helper, watchman David Turner
2016-04-06 22:11 ` [PATCH v3 01/16] read-cache.c: fix constness of verify_hdr() David Turner
2016-04-06 22:11 ` [PATCH v3 02/16] read-cache: allow to keep mmap'd memory after reading David Turner
2016-04-06 22:11 ` [PATCH v3 03/16] index-helper: new daemon for caching index and related stuff David Turner
2016-04-07 6:21 ` Johannes Sixt
2016-04-07 14:14 ` Johannes Schindelin
2016-04-07 18:47 ` David Turner
2016-04-08 14:17 ` Johannes Schindelin
2016-04-08 11:26 ` Duy Nguyen
2016-04-08 22:16 ` David Turner
2016-04-11 23:27 ` David Turner
2016-04-12 9:40 ` Duy Nguyen
2016-04-12 17:28 ` David Turner
2016-04-12 18:05 ` Junio C Hamano
2016-04-13 0:32 ` David Turner
2016-04-14 10:43 ` Duy Nguyen
2016-04-14 18:12 ` Junio C Hamano
2016-04-14 18:20 ` David Turner
2016-04-15 0:16 ` Duy Nguyen
2016-04-15 1:31 ` Junio C Hamano
2016-04-06 22:11 ` [PATCH v3 04/16] index-helper: add --strict David Turner
2016-04-06 22:11 ` [PATCH v3 05/16] daemonize(): set a flag before exiting the main process David Turner
2016-04-06 22:11 ` David Turner [this message]
2016-04-06 22:11 ` [PATCH v3 07/16] read-cache: add watchman 'WAMA' extension David Turner
2016-04-06 22:11 ` [PATCH v3 08/16] Add watchman support to reduce index refresh cost David Turner
2016-04-06 22:11 ` [PATCH v3 09/16] index-helper: use watchman to avoid refreshing index with lstat() David Turner
2016-04-07 22:47 ` Junio C Hamano
2016-04-07 22:52 ` Junio C Hamano
2016-04-08 0:14 ` David Turner
2016-04-08 6:03 ` Junio C Hamano
2016-04-06 22:11 ` [PATCH v3 10/16] update-index: enable/disable watchman support David Turner
2016-04-06 22:11 ` [PATCH v3 11/16] unpack-trees: preserve index extensions David Turner
2016-04-06 22:11 ` [PATCH v3 12/16] index-helper: kill mode David Turner
2016-04-06 22:11 ` [PATCH v3 13/16] index-helper: don't run if already running David Turner
2016-04-06 22:12 ` [PATCH v3 14/16] index-helper: autorun mode David Turner
2016-04-06 22:12 ` [PATCH v3 15/16] index-helper: optionally automatically run David Turner
2016-04-06 22:12 ` [PATCH v3 16/16] read-cache: config for waiting for index-helper 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=1459980722-4836-7-git-send-email-dturner@twopensource.com \
--to=dturner@twopensource.com \
--cc=aevarb@gmail.com \
--cc=git@vger.kernel.org \
--cc=jeffhost@microsoft.com \
--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.