diff --git a/src/include/utils/ps_status.h b/src/include/utils/ps_status.h index 8bc28e5d63bdb2be8d3e27e7eae3be0bf16d2e13..b786c5415ade3b17676576c5193b97d656b4da2f 100644 --- a/src/include/utils/ps_status.h +++ b/src/include/utils/ps_status.h @@ -11,7 +11,27 @@ #ifndef PS_STATUS_H #define PS_STATUS_H -#ifdef linux +#ifdef HAVE_SETPROCTITLE + +extern char Ps_status_buffer[]; + +#undef PS_DEFINE_BUFFER + +#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \ + do { \ + Assert(argc >= 5); \ + setproctitle("%s %s %s %s %s", execname, hostname, username, dbname, Ps_status_buffer); \ + } while (0) + +#define PS_CLEAR_STATUS() \ + do { Ps_status_buffer[0] = '\0'; } while (0) + +#define PS_SET_STATUS(status) \ + do { strcpy(Ps_status_buffer, (status)); } while (0) + +#define PS_STATUS (Ps_status_buffer) + +#elif defined(linux) #include <string.h>