summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/priv.cc
diff options
context:
space:
mode:
authorunknown <kostja@bodhi.local>2006-11-16 23:36:20 +0300
committerunknown <kostja@bodhi.local>2006-11-16 23:36:20 +0300
commit211b2bc92a25609e0c7323b5fee6f646abb3c748 (patch)
treedfe03cc1d016a01134a977925be735650f8f32ee /server-tools/instance-manager/priv.cc
parentf224238f8aed243f47e49090ef08c9fae5d05a01 (diff)
downloadmariadb-git-211b2bc92a25609e0c7323b5fee6f646abb3c748.tar.gz
Cleanup: manually port the polishing parts from Alik's changeset for
BUG#22306: STOP INSTANCE can not be applied for instances in Crashed, Failed and Abandoned mysql-test/t/im_options.imtest: Update test for new framework. server-tools/instance-manager/IMService.cpp: Use Manager class instead of manager(). Reformat comments. server-tools/instance-manager/Makefile.am: Treat warnings as errors. server-tools/instance-manager/command.cc: Store references to Guardian_thread and Instance_map in Command attributes. server-tools/instance-manager/command.h: Store references to Guardian_thread and Instance_map in Command attributes. server-tools/instance-manager/commands.cc: Remove Instance_map argument from command constructors. server-tools/instance-manager/commands.h: Remove Instance_map argument from command constructors. server-tools/instance-manager/guardian.cc: Rename: Guardian_thread -> Guardian server-tools/instance-manager/guardian.h: Rename: Guardian_thread -> Guardian server-tools/instance-manager/instance_map.cc: Rename: Guardian_thread -> Guardian. server-tools/instance-manager/instance_map.h: Rename: Guardian_thread -> Guardian. server-tools/instance-manager/manager.cc: Use Manager class instead of manager() function. server-tools/instance-manager/manager.h: Transfer manager() function into Manager class (singleton). server-tools/instance-manager/mysql_connection.cc: Polishing. server-tools/instance-manager/mysqlmanager.cc: Use Manager class instead of manager() function. server-tools/instance-manager/parse.cc: Rename: Guardian_thread -> Guardian server-tools/instance-manager/parse.h: Rename: Guardian_thread -> Guardian server-tools/instance-manager/priv.cc: Move create_pid_file() out of manager.cc. server-tools/instance-manager/priv.h: Move create_pid_file() out of manager.cc. server-tools/instance-manager/thread_registry.h: Prevent copying. server-tools/instance-manager/user_map.cc: Fix alignment.
Diffstat (limited to 'server-tools/instance-manager/priv.cc')
-rw-r--r--server-tools/instance-manager/priv.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/server-tools/instance-manager/priv.cc b/server-tools/instance-manager/priv.cc
index 3dae900d84b..7e3553444ac 100644
--- a/server-tools/instance-manager/priv.cc
+++ b/server-tools/instance-manager/priv.cc
@@ -18,6 +18,9 @@
#include <my_global.h>
#include <mysql_com.h>
+#include <my_sys.h>
+
+#include "log.h"
#if defined(__ia64__) || defined(__ia64)
/*
@@ -90,3 +93,32 @@ int set_stacksize_n_create_thread(pthread_t *thread, pthread_attr_t *attr,
rc= pthread_create(thread, attr, start_routine, arg);
return rc;
}
+
+
+int create_pid_file(const char *pid_file_name, int pid)
+{
+ FILE *pid_file;
+
+ if (!(pid_file= my_fopen(pid_file_name, O_WRONLY | O_CREAT | O_BINARY,
+ MYF(0))))
+ {
+ log_error("Error: can not create pid file '%s': %s (errno: %d)",
+ (const char *) pid_file_name,
+ (const char *) strerror(errno),
+ (int) errno);
+ return 1;
+ }
+
+ if (fprintf(pid_file, "%d\n", (int) pid) <= 0)
+ {
+ log_error("Error: can not write to pid file '%s': %s (errno: %d)",
+ (const char *) pid_file_name,
+ (const char *) strerror(errno),
+ (int) errno);
+ return 1;
+ }
+
+ my_fclose(pid_file, MYF(0));
+
+ return 0;
+}