-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/tcldaq.c,v 6.7 2002-11-08 15:14:43 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/tcldaq.c,v 6.8 2002-11-08 15:16:03 hadaq Exp $";
#define _GNU_SOURCE
#include <unistd.h>
#include <stddef.h>
#include <errno.h>
-#include <pthread.h>
#include <stdio.h>
#include <string.h>
#include "worker.h"
#include "agent.h"
-#define MAX_NTHR 16
-static pthread_t thr[MAX_NTHR];
-static nThr = 0;
-
int AgentCmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[])
{
CLIENT *cl;
return TCL_OK;
}
-void *doIt(void *args) {
- char **argv;
- CLIENT *cl;
- int res, *resP;
- int status = 0;
-
- puts("thread in");
- argv = args;
- sscanf(argv[1], "%p", &cl);
- if (NULL == (resP = rpcsystem_1(&argv[2], cl))) {
- status = 1;
- }
- puts("thread out");
-}
-
int SystemCmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[])
{
- int SystemCmdR;
+ CLIENT *cl;
+ int res, *resP;
if (argc < 3) {
Tcl_AppendResult(interp, "usage: c_system <agent> command", NULL);
- SystemCmdR = TCL_ERROR;
- } else {
- pthread_create(&thr[nThr++], NULL, doIt, (void *)argv);
- pthread_join(thr[--nThr], NULL);
- SystemCmdR = TCL_OK;
+ return TCL_ERROR;
}
-
-
-#if 0
+ sscanf(argv[1], "%p", &cl);
if (NULL == (resP = rpcsystem_1(&argv[2], cl))) {
Tcl_AppendResult(interp, clnt_sperror(cl, "rpcsystem_1"), NULL);
return TCL_ERROR;
}
res = *resP;
sprintf(interp->result, "%d", res);
-#endif
-
- return SystemCmdR;
-}
-int JoinCmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[])
-{
- int JoinCmdR;
-
- while (--nThr <= 0) {
- pthread_join(thr[nThr], NULL);
- }
- JoinCmdR = 0;
-
- return JoinCmdR;
+ return TCL_OK;
}
int Daq_Init(Tcl_Interp * interp)
Tcl_CreateCommand(interp, "c_worker", WorkerCmd, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
Tcl_CreateCommand(interp, "c_agent", AgentCmd, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
Tcl_CreateCommand(interp, "c_system", SystemCmd, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
- Tcl_CreateCommand(interp, "c_join", JoinCmd, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
/*
* Specify a user-specific startup file to invoke if the application