Changeset 11084 for trunk/Ohana/src/opihi/pantasks
- Timestamp:
- Jan 12, 2007, 4:26:31 PM (20 years ago)
- Location:
- trunk/Ohana/src/opihi/pantasks
- Files:
-
- 5 added
- 13 edited
-
Makefile (modified) (5 diffs)
-
TaskOps.c (modified) (6 diffs)
-
controller_threads.c (added)
-
init.c (modified) (2 diffs)
-
input_threads.c (added)
-
ipptool2book.c (modified) (1 diff)
-
job_threads.c (added)
-
pantasks.c (modified) (4 diffs)
-
pantasks_client.c (modified) (1 diff)
-
pantasks_server.c (modified) (2 diffs)
-
run.c (modified) (1 diff)
-
server.c (modified) (2 diffs)
-
server_run.c (modified) (2 diffs)
-
status.c (modified) (1 diff)
-
stop.c (modified) (1 diff)
-
task.c (modified) (1 diff)
-
task_threads.c (added)
-
thread_locks.c (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pantasks/Makefile
r11054 r11084 7 7 LIB = $(HOME)/lib 8 8 INC = $(HOME)/include 9 HELP = $(DESTHELP)/pantasks9 DATA = $(DESTDATA)/pantasks 10 10 11 11 # link flags … … 16 16 # sched user commands and support functions ######################## 17 17 18 client = \ 19 $(SRC)/pantasks_client.$(ARCH).o \ 20 $(SRC)/client_shell.$(ARCH).o \ 21 $(SRC)/invalid.$(ARCH).o \ 22 $(SRC)/init_client.$(ARCH).o 23 18 24 single = \ 19 25 $(SRC)/init.$(ARCH).o \ … … 21 27 $(SRC)/stop.$(ARCH).o \ 22 28 $(SRC)/pantasks.$(ARCH).o \ 23 $(SRC)/CheckSystem.$(ARCH).o 29 $(SRC)/thread_locks.$(ARCH).o \ 30 $(SRC)/job_threads.$(ARCH).o \ 31 $(SRC)/task_threads.$(ARCH).o \ 32 $(SRC)/controller_threads.$(ARCH).o 33 34 server = \ 35 $(SRC)/pantasks_server.$(ARCH).o \ 36 $(SRC)/server_run.$(ARCH).o \ 37 $(SRC)/server_load.$(ARCH).o \ 38 $(SRC)/InputQueue.$(ARCH).o \ 39 $(SRC)/ListenClients.$(ARCH).o \ 40 $(SRC)/server.$(ARCH).o \ 41 $(SRC)/status_server.$(ARCH).o \ 42 $(SRC)/init_server.$(ARCH).o \ 43 $(SRC)/CheckPassword.$(ARCH).o \ 44 $(SRC)/thread_locks.$(ARCH).o \ 45 $(SRC)/job_threads.$(ARCH).o \ 46 $(SRC)/task_threads.$(ARCH).o \ 47 $(SRC)/controller_threads.$(ARCH).o \ 48 $(SRC)/input_threads.$(ARCH).o 24 49 25 50 funcs = \ … … 61 86 $(SRC)/ipptool2book.$(ARCH).o 62 87 63 client = \64 $(SRC)/pantasks_client.$(ARCH).o \65 $(SRC)/client_shell.$(ARCH).o \66 $(SRC)/invalid.$(ARCH).o \67 $(SRC)/init_client.$(ARCH).o68 69 server = \70 $(SRC)/pantasks_server.$(ARCH).o \71 $(SRC)/server_threads.$(ARCH).o \72 $(SRC)/server_run.$(ARCH).o \73 $(SRC)/server_load.$(ARCH).o \74 $(SRC)/InputQueue.$(ARCH).o \75 $(SRC)/ListenClients.$(ARCH).o \76 $(SRC)/server.$(ARCH).o \77 $(SRC)/status_server.$(ARCH).o \78 $(SRC)/init_server.$(ARCH).o \79 $(SRC)/CheckPassword.$(ARCH).o80 81 88 libs = \ 82 89 $(DESTLIB)/libshell.a \ … … 103 110 $(single) $(client) $(server) $(funcs) $(cmds) : $(INC)/pantasks.h 104 111 105 install: $(DESTBIN)/pantasks $(DESTBIN)/pantasks_client $(DESTBIN)/pantasks_server help 112 install: $(DESTBIN)/pantasks $(DESTBIN)/pantasks_client $(DESTBIN)/pantasks_server help modules 106 113 107 114 help: clean-help cmd.basic.help cmd.data.help cmd.astro.help pantasks.help 115 116 modules: pantasks.modules 108 117 109 118 .PHONY: pantasks pantasks_client pantasks_server -
trunk/Ohana/src/opihi/pantasks/TaskOps.c
r11055 r11084 1 1 # include "pantasks.h" 2 # include <regex.h> 2 3 3 4 static Task **tasks; … … 75 76 gprint (GP_LOG, " Task Status\n"); 76 77 77 snprintf (format, 128, " AV %%-%ds %5s %%-%ds\n", nameLength, "Njobs", cmdLength);78 snprintf (format, 128, " AV %%-%ds %5s %5s %5s %5s %%-%ds\n", nameLength, "Njobs", "Ngood", "Nfail", "Ntime", cmdLength); 78 79 gprint (GP_LOG, format, "Name", "Command"); 79 80 80 snprintf (format, 128, "%%-%ds %%5d %%-%ds\n", nameLength, cmdLength);81 snprintf (format, 128, "%%-%ds %%5d %%5d %%5d %%5d %%-%ds\n", nameLength, cmdLength); 81 82 for (i = 0; i < Ntasks; i++) { 82 83 valid = CheckTimeRanges (tasks[i][0].ranges, tasks[i][0].Nranges); … … 93 94 } 94 95 if (tasks[i][0].argv == NULL) { 95 gprint (GP_LOG, format, tasks[i][0].name, tasks[i][0].Njobs, "(dynamic)");96 } else { 97 gprint (GP_LOG, format, tasks[i][0].name, tasks[i][0].Njobs, tasks[i][0]. argv[0]);96 gprint (GP_LOG, format, tasks[i][0].name, tasks[i][0].Njobs, tasks[i][0].Nsuccess, tasks[i][0].Nfailure, tasks[i][0].Ntimeout, "(dynamic)"); 97 } else { 98 gprint (GP_LOG, format, tasks[i][0].name, tasks[i][0].Njobs, tasks[i][0].Nsuccess, tasks[i][0].Nfailure, tasks[i][0].Ntimeout, tasks[i][0].argv[0]); 98 99 } 99 100 if (verbose) { … … 146 147 147 148 /* list known tasks */ 148 void ListTaskStats ( ) {149 void ListTaskStats (char *regex) { 149 150 150 151 int i, j, valid, nameLength; 151 152 char *start, *stop; 152 153 char format[128]; 154 regex_t preg; 153 155 154 156 gprint (GP_LOG, "\n"); … … 158 160 } 159 161 162 if (regex != NULL) { 163 regcomp (&preg, regex, REG_EXTENDED); 164 } 165 160 166 /* find string lengths */ 161 167 nameLength = 0; … … 173 179 snprintf (format, 128, "%%-%ds", nameLength); 174 180 for (i = 0; i < Ntasks; i++) { 181 182 if ((regex != NULL) && regexec (&preg, tasks[i][0].name, 0, NULL, 0)) continue; 183 175 184 valid = CheckTimeRanges (tasks[i][0].ranges, tasks[i][0].Nranges); 176 185 if (tasks[i][0].active) { -
trunk/Ohana/src/opihi/pantasks/init.c
r10997 r11084 15 15 int run PROTO((int, char **)); 16 16 int stop PROTO((int, char **)); 17 int halt PROTO((int, char **)); 17 18 int pulse PROTO((int, char **)); 18 19 int status_sys PROTO((int, char **)); … … 38 39 {"stderr", task_stderr, "define a file for the job stderr dump"}, 39 40 {"run", run, "run the scheduler"}, 40 {"stop", stop, "stop the scheduler"}, 41 {"stop", stop, "stop the scheduler (continue job harvesting)"}, 42 {"halt", halt, "halt the scheduler (no job harvesting)"}, 41 43 {"pulse", pulse, "set the scheduler update period"}, 42 44 {"status", status_sys, "get system status"}, -
trunk/Ohana/src/opihi/pantasks/ipptool2book.c
r11055 r11084 80 80 } 81 81 if (strcmp(bookName, argv[2])) { 82 gprint (GP_ERR, "WARNING: metadata output name does not match expected bookname\n");82 gprint (GP_ERR, "WARNING: metadata output name %s does not match expected bookname %s\n", bookName, argv[2]); 83 83 } 84 84 free (line); -
trunk/Ohana/src/opihi/pantasks/pantasks.c
r9473 r11084 10 10 void program_init (int *argc, char **argv) { 11 11 12 pthread_t jobsThread; 13 pthread_t tasksThread; 14 pthread_t controllerThread; 15 12 16 auto_break = TRUE; 13 17 … … 26 30 set_str_variable ("RCFILE", opihi_rcfile); 27 31 28 # ifdef HELPDIR_DEFAULT 29 set_str_variable ("HELPDIR", MACRO_NAME(HELPDIR_DEFAULT)); 32 # ifdef DATADIR_DEFAULT 33 { 34 char *datadir; 35 char *helpdir; 36 char *modules; 37 datadir = MACRO_NAME(DATADIR_DEFAULT); 38 /* set_str_variable ("DATADIR", datadir); */ 39 ALLOCATE (helpdir, char, strlen(datadir) + strlen("/help") + 2); 40 sprintf (helpdir, "%s/help", datadir); 41 set_str_variable ("HELPDIR", helpdir); 42 free (helpdir); 43 ALLOCATE (modules, char, strlen(datadir) + strlen("/modules") + 2); 44 sprintf (modules, "%s/modules", datadir); 45 set_str_variable ("MODULES:0", modules); 46 set_int_variable ("MODULES:n", 1); 47 free (helpdir); 48 } 30 49 # endif 31 50 … … 33 52 signal (SIGTSTP, gotsignal); 34 53 signal (SIGTTIN, gotsignal); 54 55 /* start up the background threads here */ 56 pthread_create (&tasksThread, NULL, &CheckTasksThread, NULL); 57 pthread_create (&jobsThread, NULL, &CheckJobsThread, NULL); 58 pthread_create (&controllerThread, NULL, &CheckControllerThread, NULL); 35 59 return; 36 60 } … … 61 85 exit (status); 62 86 } 87 88 /* pantasks runs three (or four) threads: 89 - one thread parses commands from the connected clients 90 - one thread runs the scheduler loop 91 - one thread may run the controller loop independently 92 - the main thread runs readline and accepts user input 93 */ -
trunk/Ohana/src/opihi/pantasks/pantasks_client.c
r9473 r11084 25 25 set_str_variable ("RCFILE", opihi_rcfile); 26 26 27 # ifdef HELPDIR_DEFAULT 28 set_str_variable ("HELPDIR", MACRO_NAME(HELPDIR_DEFAULT)); 27 # ifdef DATADIR_DEFAULT 28 { 29 char *datadir; 30 char *helpdir; 31 char *modules; 32 datadir = MACRO_NAME(DATADIR_DEFAULT); 33 /* set_str_variable ("DATADIR", datadir); */ 34 ALLOCATE (helpdir, char, strlen(datadir) + strlen("/help") + 2); 35 sprintf (helpdir, "%s/help", datadir); 36 set_str_variable ("HELPDIR", helpdir); 37 free (helpdir); 38 ALLOCATE (modules, char, strlen(datadir) + strlen("/modules") + 2); 39 sprintf (modules, "%s/modules", datadir); 40 set_str_variable ("MODULES:0", modules); 41 set_int_variable ("MODULES:n", 1); 42 free (helpdir); 43 } 29 44 # endif 30 45 -
trunk/Ohana/src/opihi/pantasks/pantasks_server.c
r9473 r11084 16 16 int main (int argc, char **argv) { 17 17 18 pthread_t jobsThread; 19 pthread_t tasksThread; 20 pthread_t inputsThread; 18 21 pthread_t clientsThread; 19 pthread_t tasksThread;20 // pthread_t jobsThread;21 pthread_t inputsThread;22 22 pthread_t controllerThread; 23 23 int InitSocket, BindSocket; … … 47 47 pthread_create (&clientsThread, NULL, &ListenClients, NULL); 48 48 pthread_create (&tasksThread, NULL, &CheckTasksThread, NULL); 49 //pthread_create (&jobsThread, NULL, &CheckJobsThread, NULL);49 pthread_create (&jobsThread, NULL, &CheckJobsThread, NULL); 50 50 pthread_create (&controllerThread, NULL, &CheckControllerThread, NULL); 51 51 pthread_create (&inputsThread, NULL, &CheckInputsThread, NULL); -
trunk/Ohana/src/opihi/pantasks/run.c
r7929 r11084 15 15 } 16 16 17 InitTaskTimers (); 18 rl_event_hook = CheckSystem; 17 CheckTasksSetState (TRUE); 18 CheckControllerSetState (TRUE); 19 CheckJobsSetState (TRUE); 20 21 // InitTaskTimers (); 22 // rl_event_hook = CheckSystem; 19 23 20 24 return (TRUE); -
trunk/Ohana/src/opihi/pantasks/server.c
r8548 r11084 7 7 int server_run PROTO((int, char **)); 8 8 int server_stop PROTO((int, char **)); 9 int server_halt PROTO((int, char **)); 9 10 int cd PROTO((int, char **)); 10 11 int pwd PROTO((int, char **)); … … 20 21 {"run", server_run, "run scheduler"}, 21 22 {"stop", server_stop, "stop scheduler"}, 23 {"halt", server_halt, "halt scheduler"}, 22 24 {"cd", cd, "set local directory"}, 23 25 {"pwd", pwd, "check local directory"}, -
trunk/Ohana/src/opihi/pantasks/server_run.c
r8548 r11084 9 9 10 10 CheckTasksSetState (TRUE); 11 //CheckJobsSetState (TRUE);11 CheckJobsSetState (TRUE); 12 12 CheckControllerSetState (TRUE); 13 13 CheckInputsSetState (TRUE); … … 24 24 CheckTasksSetState (FALSE); 25 25 // CheckJobsSetState (FALSE); 26 // CheckControllerSetState (FALSE); 27 CheckInputsSetState (FALSE); 28 return (TRUE); 29 } 30 31 int server_halt (int argc, char **argv) { 32 33 if (argc != 1) { 34 gprint (GP_ERR, "USAGE: server halt\n"); 35 return (FALSE); 36 } 37 38 CheckTasksSetState (FALSE); 39 CheckJobsSetState (FALSE); 26 40 CheckControllerSetState (FALSE); 27 41 CheckInputsSetState (FALSE); -
trunk/Ohana/src/opihi/pantasks/status.c
r7960 r11084 4 4 5 5 gprint (GP_LOG, "\n"); 6 if (rl_event_hook == NULL) { 7 gprint (GP_LOG, " Scheduler is stopped\n"); 6 7 // if (rl_event_hook == NULL) { 8 9 if (CheckTasksGetState()) { 10 gprint (GP_LOG, " Scheduler is running\n"); 8 11 } else { 9 gprint (GP_LOG, " Scheduler is running\n"); 12 if (CheckJobsGetState()) { 13 gprint (GP_LOG, " Scheduler is stopped, harvesting jobs\n"); 14 } else { 15 gprint (GP_LOG, " Scheduler is running\n"); 16 } 10 17 } 11 18 if (CheckControllerStatus()) { -
trunk/Ohana/src/opihi/pantasks/stop.c
r7917 r11084 8 8 } 9 9 10 rl_event_hook = NULL; 10 CheckTasksSetState (FALSE); 11 // CheckControllerSetState (FALSE); 12 // CheckJobsSetState (FALSE); 11 13 12 14 return (TRUE); 13 15 } 16 17 int halt (int argc, char **argv) { 18 19 if (argc != 1) { 20 gprint (GP_ERR, "USAGE: halt\n"); 21 return (FALSE); 22 } 23 24 CheckTasksSetState (FALSE); 25 CheckControllerSetState (FALSE); 26 CheckJobsSetState (FALSE); 27 28 return (TRUE); 29 } -
trunk/Ohana/src/opihi/pantasks/task.c
r11055 r11084 23 23 if ((N = get_argument (argc, argv, "-stats"))) { 24 24 remove_argument (N, &argc, argv); 25 ListTaskStats (); 25 if (argc == 2) { 26 ListTaskStats (argv[N]); 27 } else { 28 ListTaskStats (NULL); 29 } 26 30 return (TRUE); 27 31 }
Note:
See TracChangeset
for help on using the changeset viewer.
