diff --git a/ab.c b/ab.c
index 6c990ec..cf1b886 100644
--- a/ab.c
+++ b/ab.c
@@ -206,7 +206,7 @@ int main(int argc, char **argv)
{
wyebclient(argv[0]);
}
- else if (g_str_has_prefix(argv[1], WYEBPREFIX))
+ else if (!strcmp(argv[1], WYEBPREFIX))
{
init();
wyebsvr(argc, argv, datafunc);
diff --git a/wyebrun.c b/wyebrun.c
index 40bb7b7..bab2872 100644
--- a/wyebrun.c
+++ b/wyebrun.c
@@ -18,9 +18,8 @@ along with wyebrun. If not, see .
*/
-//getpid
-#include
-#include
+//gettid
+#include
//flock
#include
@@ -213,12 +212,12 @@ static gboolean svrinit(char *caller)
bool wyebsvr(int argc, char **argv, wyebdataf func)
{
- if (argc < 2 || !g_str_has_prefix(argv[1], PREFIX)) return false;
+ if (argc < 3 || strcmp(argv[1], PREFIX)) return false;
svrexe = argv[0];
dataf = func;
sloop = g_main_loop_new(NULL, false);
- g_idle_add((GSourceFunc)svrinit, argv[1]);
+ g_idle_add((GSourceFunc)svrinit, argv[2]);
g_main_loop_run(sloop);
return true;
@@ -276,8 +275,7 @@ static Client *makecli()
{
Client *cli = g_new0(Client, 1);
g_mutex_init(&cli->retm);
- cli->pid = g_strdup_printf(PREFIX"%d-%d",
- getpid(), GPOINTER_TO_INT(g_thread_self()));
+ cli->pid = g_strdup_printf("%d", (pid_t)syscall(SYS_gettid));
cli->wctx = g_main_context_new();
cli->loop = g_main_loop_new(cli->wctx, true);
@@ -387,9 +385,10 @@ static char *request(char *exe, Com type, bool caller, char *data)
g_source_attach(tout, cli->wctx);
- char **argv = g_new0(char*, 3);
+ char **argv = g_new0(char*, 4);
argv[0] = exe;
- argv[1] = cli->pid;
+ argv[1] = PREFIX;
+ argv[2] = cli->pid;
GError *err = NULL;
if (!g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH,
NULL, NULL, NULL, &err))
@@ -494,7 +493,7 @@ static gboolean tcinputcb(GIOChannel *ch, GIOCondition c, char *exe)
GThreadPool *pool = g_thread_pool_new(testget, exe, 44, false, NULL);
start = g_get_monotonic_time();
- for (int i = 0; i < 10000; i++)
+ for (int i = 0; i < 100; i++)
{
char *is = g_strdup_printf("l%d", i);
//g_print("loop %d ret %s\n", i, wyebget(exe, is));
diff --git a/wyebrun.h b/wyebrun.h
index 98c5b95..9657be5 100644
--- a/wyebrun.h
+++ b/wyebrun.h
@@ -23,7 +23,7 @@ along with wyebrun. If not, see .
#include
#include
-#define WYEBPREFIX "-wyeb"
+#define WYEBPREFIX "--wyebrun"
#define WYEBKEEPSEC 3
//client
@@ -43,7 +43,8 @@ typedef char *(*wyebdataf)(char *data);
bool wyebsvr(int argc, char **argv, wyebdataf func);
//or if there is own GMainLoop
void wyebwatch(char *exe, char *caller, wyebdataf func);
-//the caller is used to send the res meaning we are ready.
+//the caller is sent as 'exe --wyebrun 9999' and
+//used to send the res meaning we are ready.
//3 sec left or client will die