diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 84ec043392..bd8f1d21a1 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -5,7 +5,7 @@ * to contain some useful information. Mechanism differs wildly across * platforms. * - * $PostgreSQL: pgsql/src/backend/utils/misc/ps_status.c,v 1.29 2006/03/05 15:58:49 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/misc/ps_status.c,v 1.30 2006/06/12 02:39:49 tgl Exp $ * * Copyright (c) 2000-2006, PostgreSQL Global Development Group * various details abducted from various places @@ -33,7 +33,7 @@ extern char **environ; -/*------ +/* * Alternative ways of updating ps display: * * PS_USE_SETPROCTITLE @@ -51,6 +51,8 @@ extern char **environ; * PS_USE_CLOBBER_ARGV * write over the argv and environment area * (most SysV-like systems) + * PS_USE_WIN32 + * push the string out as the name of a Windows event * PS_USE_NONE * don't update ps display * (This is the default, as it is safest.) @@ -65,7 +67,7 @@ extern char **environ; #define PS_USE_CHANGE_ARGV #elif defined(__linux__) || defined(_AIX) || defined(__sgi) || (defined(sun) && !defined(BSD)) || defined(ultrix) || defined(__ksr__) || defined(__osf__) || defined(__svr4__) || defined(__svr5__) || defined(__darwin__) #define PS_USE_CLOBBER_ARGV -#elif defined (WIN32) +#elif defined(WIN32) #define PS_USE_WIN32 #else #define PS_USE_NONE @@ -96,30 +98,6 @@ static size_t ps_buffer_fixed_size; /* size of the constant prefix */ static int save_argc; static char **save_argv; -#ifdef WIN32 - - /* - * Win32 does not support showing any changed arguments. To make it at all - * possible to track which backend is doing what, we create a named object - * that can be viewed with for example Process Explorer - */ -static HANDLE ident_handle = INVALID_HANDLE_VALUE; -static void -pgwin32_update_ident(char *ident) -{ - char name[PS_BUFFER_SIZE + 32]; - - if (ident_handle != INVALID_HANDLE_VALUE) - CloseHandle(ident_handle); - - sprintf(name, "pgident: %s", ident); - - ident_handle = CreateEvent(NULL, - TRUE, - FALSE, - name); -} -#endif /* * Call this early in startup to save the original argc/argv values. @@ -292,9 +270,6 @@ init_ps_display(const char *username, const char *dbname, ps_buffer_fixed_size = strlen(ps_buffer); -#ifdef WIN32 - pgwin32_update_ident(ps_buffer); -#endif #endif /* not PS_USE_NONE */ } @@ -352,9 +327,25 @@ set_ps_display(const char *activity) } #endif /* PS_USE_CLOBBER_ARGV */ -#ifdef WIN32 - pgwin32_update_ident(ps_buffer); -#endif +#ifdef PS_USE_WIN32 + { + /* + * Win32 does not support showing any changed arguments. To make it + * at all possible to track which backend is doing what, we create a + * named object that can be viewed with for example Process Explorer. + */ + static HANDLE ident_handle = INVALID_HANDLE_VALUE; + char name[PS_BUFFER_SIZE + 32]; + + if (ident_handle != INVALID_HANDLE_VALUE) + CloseHandle(ident_handle); + + sprintf(name, "pgident: %s", ps_buffer); + + ident_handle = CreateEvent(NULL, TRUE, FALSE, name); + } +#endif /* PS_USE_WIN32 */ + #endif /* not PS_USE_NONE */ }