projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge working tree with build tree.
[m6w6/libmemcached]
/
libtest
/
blobslap_worker.cc
diff --git
a/libtest/blobslap_worker.cc
b/libtest/blobslap_worker.cc
index c7ac0a02ced740113360b798e99d4910333219ea..f341962061da1a4a17855bc4baaa2ae3856d481a 100644
(file)
--- a/
libtest/blobslap_worker.cc
+++ b/
libtest/blobslap_worker.cc
@@
-20,11
+20,10
@@
*/
*/
+#include <config.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>
@@
-43,32
+42,43
@@
using namespace libtest;
#pragma GCC diagnostic ignored "-Wold-style-cast"
#endif
#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()
@@
-86,12
+96,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;
@@
-105,29
+118,14
@@
public:
return "blobslap_worker";
};
return "blobslap_worker";
};
- const char *executable()
- {
- return GEARMAND_BLOBSLAP_WORKER;
- }
-
- const char *pid_file_option()
- {
- return "--pid-file=";
- }
-
- const char *daemon_file_option()
- {
- return "--daemon";
- }
-
- const char *log_file_option()
+ bool has_port_option() const
{
{
- return
NULL
;
+ return
true
;
}
}
- const char *port_option()
+ bool has_log_file_option() const
{
{
- return
"--port="
;
+ return
true
;
}
bool is_libtool()
}
bool is_libtool()
@@
-135,31
+133,27
@@
public:
return true;
}
return true;
}
- bool build(
in
t argc, const char *argv[]);
+ bool build(
size_
t argc, const char *argv[]);
};
#include <sstream>
};
#include <sstream>
-bool BlobslapWorker::build(
in
t argc, const char *argv[])
+bool BlobslapWorker::build(
size_
t argc, const char *argv[])
{
std::stringstream arg_buffer;
{
std::stringstream arg_buffer;
- for (
int x= 1
; x < argc ; x++)
+ for (
size_t x= 0
; x < argc ; x++)
{
{
- a
rg_buffer << " " << argv[x] << " "
;
+ a
dd_option(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