* 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
extern char **environ;
-/*------
+/*
* Alternative ways of updating ps display:
*
* PS_USE_SETPROCTITLE
* 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.)
#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
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.
ps_buffer_fixed_size = strlen(ps_buffer);
-#ifdef WIN32
- pgwin32_update_ident(ps_buffer);
-#endif
#endif /* not PS_USE_NONE */
}
}
#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 */
}