projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
c++: fix -Wimplicit-fallthrough
[awesomized/libmemcached]
/
libtest
/
blobslap_worker.cc
diff --git
a/libtest/blobslap_worker.cc
b/libtest/blobslap_worker.cc
index 2ac07d681cee9591407a6385f5f4c3f32742a005..5100a388628a86d3bf5a90bf5efd2e0ecac635c8 100644
(file)
--- a/
libtest/blobslap_worker.cc
+++ b/
libtest/blobslap_worker.cc
@@
-1,8
+1,8
@@
/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
/* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
- *
- * libtest
*
*
- * Copyright (C) 2011 Data Differential, http://datadifferential.com/
+ * Data Differential YATL (i.e. libtest) library
+ *
+ * Copyright (C) 2012 Data Differential, http://datadifferential.com/
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@
-34,11
+34,11
@@
*
*/
*
*/
+
+#include "libtest/yatlcon.h"
#include <libtest/common.h>
#include <libtest/common.h>
-#include <libtest/blobslap_worker.h>
-#include <libtest/killpid.h>
-using namespace libtest;
+#include <libtest/blobslap_worker.h>
#include <cassert>
#include <cerrno>
#include <cassert>
#include <cerrno>
@@
-51,38
+51,47
@@
using namespace libtest;
#include <sys/wait.h>
#include <unistd.h>
#include <sys/wait.h>
#include <unistd.h>
-#include <libgearman/gearman.h>
-
#ifndef __INTEL_COMPILER
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif
#ifndef __INTEL_COMPILER
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif
-using namespace libtest;
+namespace libtest {
class BlobslapWorker : public Server
{
private:
public:
BlobslapWorker(in_port_t port_arg) :
class BlobslapWorker : public Server
{
private:
public:
BlobslapWorker(in_port_t port_arg) :
- Server("localhost", port_arg)
- { }
+ Server("localhost", port_arg, "benchmark/blobslap_worker", true)
+ {
+ set_pid_file();
+ }
pid_t get_pid(bool error_is_ok)
{
pid_t get_pid(bool error_is_ok)
{
- if (not pid_file().empty())
+ if (pid_file().empty())
+ {
+ Error << "pid_file was empty";
+ return -1;
+ }
+
+ Wait wait(pid_file(), 0);
+
+ if (error_is_ok and not wait.successful())
{
{
- Wait wait(pid_file(), 0);
+ Error << "Pidfile was not found:" << pid_file();
+ return -1;
+ }
- if (error_is_ok and not wait.successful())
- {
- Error << "Pidfile was not found:" << pid_file();
- return -1;
+ std::stringstream error_message;
+ pid_t ret= get_pid_from_file(pid_file(), error_message);
- return get_pid_from_file(pid_file());
- }
+ if (error_is_ok and is_pid_valid(ret) == false)
+ {
+ Error << error_message.str();
}
}
- return
-1
;
+ return
ret
;
}
bool ping()
}
bool ping()
@@
-100,12
+109,15
@@
public:
return false;
}
return false;
}
- pid_t local_pid= get_pid_from_file(pid_file());
- if (local_pid <= 0)
+ std::stringstream error_message;
+ pid_t local_pid= get_pid_from_file(pid_file(), error_message);
+ if (is_pid_valid(local_pid) == false)
{
{
+ Error << error_message.str();
return false;
}
return false;
}
+ // Use kill to determine is the process exist
if (::kill(local_pid, 0) == 0)
{
return true;
if (::kill(local_pid, 0) == 0)
{
return true;
@@
-119,29
+131,14
@@
public:
return "blobslap_worker";
};
return "blobslap_worker";
};
- const char *executable()
+ bool has_port_option() const
{
{
- return GEARMAND_BLOBSLAP_WORKER;
- }
-
- const char *pid_file_option()
- {
- return "--pid-file=";
- }
-
- const char *daemon_file_option()
- {
- return "--daemon";
- }
-
- const char *log_file_option()
- {
- return NULL;
+ return true;
}
}
- const char *port_option()
+ bool has_log_file_option() const
{
{
- return
"--port="
;
+ return
true
;
}
bool is_libtool()
}
bool is_libtool()
@@
-149,31
+146,20
@@
public:
return true;
}
return true;
}
- bool build(
int argc, const char *argv[]
);
+ bool build();
};
#include <sstream>
};
#include <sstream>
-bool BlobslapWorker::build(
int argc, const char *argv[]
)
+bool BlobslapWorker::build()
{
{
- std::stringstream arg_buffer;
-
- for (int x= 1 ; x < argc ; x++)
- {
- arg_buffer << " " << argv[x] << " ";
- }
-
- set_extra_args(arg_buffer.str());
-
return true;
}
return true;
}
-namespace libtest {
-
Server *build_blobslap_worker(in_port_t try_port)
{
return new BlobslapWorker(try_port);
}
Server *build_blobslap_worker(in_port_t try_port)
{
return new BlobslapWorker(try_port);
}
-}
+}
// namespace libtest