From 1bc180cd2acc55e31b61c4cc9ab4b07670a2566e Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Tue, 24 Jul 2018 13:09:22 +1200 Subject: Use setproctitle_fast() to update the ps status, if available. FreeBSD has introduced a faster variant of setproctitle(). Use it, where available. Author: Thomas Munro Discussion: https://postgr.es/m/CAEepm=1wKMTi81uodJ=1KbJAz5WedOg=cr8ewEXrUFeaxWEgww@mail.gmail.com --- src/backend/utils/misc/ps_status.c | 11 +++++++++-- src/include/pg_config.h.in | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 83a93d24056..55521c19afd 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -38,6 +38,9 @@ bool update_process_title = true; /* * Alternative ways of updating ps display: * + * PS_USE_SETPROCTITLE_FAST + * use the function setproctitle_fast(const char *, ...) + * (newer FreeBSD systems) * PS_USE_SETPROCTITLE * use the function setproctitle(const char *, ...) * (newer BSD systems) @@ -59,7 +62,9 @@ bool update_process_title = true; * don't update ps display * (This is the default, as it is safest.) */ -#if defined(HAVE_SETPROCTITLE) +#if defined(HAVE_SETPROCTITLE_FAST) +#define PS_USE_SETPROCTITLE_FAST +#elif defined(HAVE_SETPROCTITLE) #define PS_USE_SETPROCTITLE #elif defined(HAVE_PSTAT) && defined(PSTAT_SETCMD) #define PS_USE_PSTAT @@ -286,7 +291,7 @@ init_ps_display(const char *username, const char *dbname, * Make fixed prefix of ps display. */ -#ifdef PS_USE_SETPROCTITLE +#if defined(PS_USE_SETPROCTITLE) || defined(PS_USE_SETPROCTITLE_FAST) /* * apparently setproctitle() already adds a `progname:' prefix to the ps @@ -349,6 +354,8 @@ set_ps_display(const char *activity, bool force) #ifdef PS_USE_SETPROCTITLE setproctitle("%s", ps_buffer); +#elif defined(PS_USE_SETPROCTITLE_FAST) + setproctitle_fast("%s", ps_buffer); #endif #ifdef PS_USE_PSTAT diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 3eec284dc13..b7e469670f4 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -489,6 +489,9 @@ /* Define to 1 if you have the `setproctitle' function. */ #undef HAVE_SETPROCTITLE +/* Define to 1 if you have the `setproctitle_fast' function. */ +#undef HAVE_SETPROCTITLE_FAST + /* Define to 1 if you have the `setsid' function. */ #undef HAVE_SETSID -- cgit v1.2.3