Changeset 10652
- Timestamp:
- Dec 12, 2006, 1:17:11 AM (20 years ago)
- Location:
- trunk/Ohana/src/opihi/pcontrol
- Files:
-
- 20 edited
-
CheckBusyJob.c (modified) (1 diff)
-
CheckDoneHost.c (modified) (1 diff)
-
CheckDoneJob.c (modified) (1 diff)
-
CheckHost.c (modified) (1 diff)
-
CheckIdleHost.c (modified) (1 diff)
-
CheckPoint.c (modified) (3 diffs)
-
CheckSystem.c (modified) (2 diffs)
-
GetJobOutput.c (modified) (1 diff)
-
HostOps.c (modified) (1 diff)
-
JobOps.c (modified) (1 diff)
-
KillJob.c (modified) (1 diff)
-
PclientCommand.c (modified) (1 diff)
-
QueueOps.c (modified) (2 diffs)
-
ResetJob.c (modified) (1 diff)
-
StackOps.c (modified) (8 diffs)
-
StartJob.c (modified) (1 diff)
-
StopHosts.c (modified) (3 diffs)
-
host.c (modified) (1 diff)
-
rconnect.c (modified) (1 diff)
-
status.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c
r10651 r10652 12 12 JOB_BUSY stack, and is linked to a host in the HOST_BUSY stack. 13 13 XXX need to check on state of HOST on return */ 14 15 ASSERT (job, "job not set"); 16 ASSERT (host, "host not set"); 14 17 15 18 ASSERT (host == (Host *) job[0].host, "invalid host"); -
trunk/Ohana/src/opihi/pcontrol/CheckDoneHost.c
r8424 r10652 6 6 char *p; 7 7 IOBuffer buffer; 8 9 ASSERT (host, "host not set"); 8 10 9 11 InitIOBuffer (&buffer, 0x100); -
trunk/Ohana/src/opihi/pcontrol/CheckDoneJob.c
r8424 r10652 4 4 5 5 int success; 6 7 ASSERT (job, "job not set"); 8 ASSERT (host, "host not set"); 6 9 7 10 ASSERT (host == (Host *) job[0].host, "invalid host"); -
trunk/Ohana/src/opihi/pcontrol/CheckHost.c
r8424 r10652 5 5 int status; 6 6 IOBuffer buffer; 7 8 ASSERT (host, "host not set"); 7 9 8 10 if (host[0].job != NULL) return (TRUE); -
trunk/Ohana/src/opihi/pcontrol/CheckIdleHost.c
r8424 r10652 7 7 Stack *stack; 8 8 Job *job; 9 10 ASSERT (host, "host not set"); 9 11 10 12 /* if this host has been marked to be turned off, do that and return */ -
trunk/Ohana/src/opihi/pcontrol/CheckPoint.c
r8546 r10652 18 18 # ifdef THREADED 19 19 int status; 20 int Nwait; 20 21 21 22 // set my lock … … 23 24 24 25 // wait until client thread sets its lock 26 Nwait = 0; 25 27 while (1) { 26 28 status = pthread_mutex_trylock (&client); … … 31 33 pthread_mutex_unlock (&client); 32 34 usleep (10000); // wait for client thread to set lock 35 Nwait ++; 36 if (Nwait > 100) { 37 fprintf (stderr, "deadlock?\n"); 38 } 33 39 } 34 40 // put in a timeout? (client thread not spinning...) -
trunk/Ohana/src/opihi/pcontrol/CheckSystem.c
r10651 r10652 178 178 } 179 179 host = (Host *) job[0].host; 180 ASSERT (host, "host is NULL"); 181 180 182 RemoveStackByID (hoststack, host[0].HostID); 181 183 UnlockStack (hoststack); … … 215 217 } 216 218 host = (Host *) job[0].host; 219 ASSERT (host, "host is NULL"); 220 217 221 RemoveStackByID (hoststack, host[0].HostID); 218 222 UnlockStack (hoststack); -
trunk/Ohana/src/opihi/pcontrol/GetJobOutput.c
r7917 r10652 8 8 char *line; 9 9 struct timespec request, remain; 10 11 ASSERT (cmd, "cmd missing"); 12 ASSERT (host, "host missing"); 13 ASSERT (buffer, "buffer missing"); 10 14 11 15 /* flush any earlier messages */ -
trunk/Ohana/src/opihi/pcontrol/HostOps.c
r8424 r10652 145 145 } 146 146 147 /* find the host by ID in the defined host stacks (don't pull off stack) */148 /* the Find functions are not thread-safe: DROP */149 # if (0)150 Host *FindHostByID (IDtype HostID, int *StackID) {151 152 Host *host;153 154 *StackID = PCONTROL_HOST_IDLE;155 host = FindHostInStackByID (*StackID, HostID);156 if (host != NULL) return (host);157 158 *StackID = PCONTROL_HOST_DOWN;159 host = FindHostInStackByID (*StackID, HostID);160 if (host != NULL) return (host);161 162 *StackID = PCONTROL_HOST_DONE;163 host = FindHostInStackByID (*StackID, HostID);164 if (host != NULL) return (host);165 166 *StackID = PCONTROL_HOST_BUSY;167 host = FindHostInStackByID (*StackID, HostID);168 if (host != NULL) return (host);169 170 *StackID = PCONTROL_HOST_OFF;171 host = FindHostInStackByID (*StackID, HostID);172 if (host != NULL) return (host);173 174 *StackID = -1;175 return (NULL);176 }177 178 /* find the host by Name in the defined host stacks (don't pull off stack) */179 Host *FindHostByName (char *name, int *StackID) {180 181 Host *host;182 183 *StackID = PCONTROL_HOST_IDLE;184 host = FindHostInStackByName (*StackID, name);185 if (host != NULL) return (host);186 187 *StackID = PCONTROL_HOST_DOWN;188 host = FindHostInStackByName (*StackID, name);189 if (host != NULL) return (host);190 191 *StackID = PCONTROL_HOST_DONE;192 host = FindHostInStackByName (*StackID, name);193 if (host != NULL) return (host);194 195 *StackID = PCONTROL_HOST_BUSY;196 host = FindHostInStackByName (*StackID, name);197 if (host != NULL) return (host);198 199 *StackID = PCONTROL_HOST_OFF;200 host = FindHostInStackByName (*StackID, name);201 if (host != NULL) return (host);202 203 *StackID = -1;204 return (NULL);205 }206 207 Host *FindHostInStackByID (int StackID, IDtype ID) {208 209 Host *host;210 Stack *stack;211 212 stack = GetHostStack (StackID);213 if (stack == NULL) return (NULL);214 215 host = FindStackByID (stack, ID);216 return (host);217 }218 219 Host *FindHostInStackByName (int StackID, char *name) {220 221 Host *host;222 Stack *stack;223 224 stack = GetHostStack (StackID);225 if (stack == NULL) return (NULL);226 227 host = FindStackByName (stack, name);228 return (host);229 }230 # endif231 232 147 IDtype AddHost (char *hostname) { 233 148 -
trunk/Ohana/src/opihi/pcontrol/JobOps.c
r8424 r10652 130 130 return (job); 131 131 } 132 133 /* the Find functions are not thread-safe: DROP */134 # if (0)135 Job *FindJobByID (IDtype JobID, int *StackID) {136 137 Job *job;138 139 *StackID = PCONTROL_JOB_PENDING;140 job = FindJobInStackByID (*StackID, JobID);141 if (job != NULL) return (job);142 143 *StackID = PCONTROL_JOB_BUSY;144 job = FindJobInStackByID (*StackID, JobID);145 if (job != NULL) return (job);146 147 *StackID = PCONTROL_JOB_EXIT;148 job = FindJobInStackByID (*StackID, JobID);149 if (job != NULL) return (job);150 151 *StackID = PCONTROL_JOB_CRASH;152 job = FindJobInStackByID (*StackID, JobID);153 if (job != NULL) return (job);154 155 *StackID = PCONTROL_JOB_DONE;156 job = FindJobInStackByID (*StackID, JobID);157 if (job != NULL) return (job);158 159 return (NULL);160 }161 162 /* remove job from position in stack */163 Job *FindJobInStackByID (int StackID, int ID) {164 165 Job *job;166 Stack *stack;167 168 stack = GetJobStack (StackID);169 if (stack == NULL) return (NULL);170 171 job = FindStackByID (stack, ID);172 return (job);173 }174 # endif175 132 176 133 IDtype AddJob (char *hostname, JobMode mode, int timeout, int argc, char **argv) { -
trunk/Ohana/src/opihi/pcontrol/KillJob.c
r10651 r10652 6 6 int status; 7 7 char *p; 8 9 ASSERT (host != NULL, "host missing"); 10 ASSERT (job != NULL, "job missing"); 8 11 9 12 ASSERT (host == (Host *) job[0].host, "invalid host"); -
trunk/Ohana/src/opihi/pcontrol/PclientCommand.c
r8546 r10652 8 8 char *line; 9 9 struct timespec request, remain; 10 11 ASSERT (host != NULL, "host missing"); 12 ASSERT (buffer != NULL, "buffer missing"); 13 ASSERT (command != NULL, "command missing"); 14 ASSERT (response != NULL, "response missing"); 10 15 11 16 /* avoid blocking on read, test every 100 usec, up to 50 msec */ -
trunk/Ohana/src/opihi/pcontrol/QueueOps.c
r3203 r10652 7 7 void *object; 8 8 9 ASSERT (stack != NULL, "stack missing"); 10 9 11 /* STACK_TOP == 0, STACK_BOTTOM == -1 */ 10 12 /* this code correctly handles the negative 'where' and Nobject == 0 */ … … 25 27 26 28 int i; 29 30 ASSERT (stack != NULL, "stack missing"); 27 31 28 32 /* STACK_TOP == 0, STACK_BOTTOM == -1 */ -
trunk/Ohana/src/opihi/pcontrol/ResetJob.c
r7917 r10652 8 8 9 9 /** must have a valid host : if not, move to pending? **/ 10 ASSERT (job != NULL, "job missing"); 11 10 12 host = (Host *) job[0].host; 13 ASSERT (job != NULL, "host missing"); 11 14 12 15 InitIOBuffer (&buffer, 0x100); -
trunk/Ohana/src/opihi/pcontrol/StackOps.c
r8424 r10652 39 39 int i; 40 40 41 ASSERT (stack != NULL, "stack not set"); 41 42 LockStack (stack); 42 43 … … 74 75 void *object; 75 76 77 ASSERT (stack != NULL, "stack not set"); 76 78 LockStack (stack); 77 79 … … 98 100 void *object; 99 101 102 ASSERT (stack != NULL, "stack not set"); 100 103 LockStack (stack); 101 104 … … 119 122 void *object; 120 123 124 ASSERT (stack != NULL, "stack not set"); 121 125 LockStack (stack); 122 126 … … 138 142 139 143 int i; 144 145 ASSERT (stack != NULL, "stack not set"); 140 146 141 147 if (where < 0) abort(); … … 159 165 void *object; 160 166 167 ASSERT (stack != NULL, "stack not set"); 168 161 169 for (i = 0; i < stack[0].Nobject; i++) { 162 170 if (stack[0].id[i] != id) continue; … … 170 178 } 171 179 172 /* the Find operations are not thread-safe */173 # if (0)174 /* get object from stack which matches name */175 void *FindStackByName (Stack *stack, char *name) {176 177 int i, j;178 void *object;179 180 for (i = 0; i < stack[0].Nobject; i++) {181 if (strcasecmp (stack[0].name[i], name)) continue;182 183 /* here is the element of interest */184 object = stack[0].object[i];185 return (object);186 }187 return (NULL);188 }189 190 /* find object in stack, don't remove */191 void *FindStackByID (Stack *stack, int id) {192 193 int i, j;194 void *object;195 196 for (i = 0; i < stack[0].Nobject; i++) {197 if (stack[0].id[i] != id) continue;198 199 /* here is the element of interest */200 object = stack[0].object[i];201 return (object);202 }203 return (NULL);204 }205 # endif206 207 180 void LockStack (Stack *stack) { 208 181 # ifdef THREADED 182 ASSERT (stack != NULL, "stack not set"); 209 183 pthread_mutex_lock (&stack[0].mutex); 210 184 # endif … … 214 188 void UnlockStack (Stack *stack) { 215 189 # ifdef THREADED 190 ASSERT (stack != NULL, "stack not set"); 216 191 pthread_mutex_unlock (&stack[0].mutex); 217 192 # endif -
trunk/Ohana/src/opihi/pcontrol/StartJob.c
r8424 r10652 10 10 11 11 /* job must have assigned host */ 12 ASSERT (job != NULL, "missing job"); 13 ASSERT (host != NULL, "missing host"); 12 14 ASSERT (host == (Host *) job[0].host, "invalid host"); 13 15 ASSERT (job == (Job *) host[0].job, "invalid job"); -
trunk/Ohana/src/opihi/pcontrol/StopHosts.c
r8546 r10652 30 30 SetCheckPoint (); // ensure we can find the specified host 31 31 stack = GetHostStack (PCONTROL_HOST_IDLE); 32 ASSERT (stack != NULL, "stack missing"); 32 33 Nobject = stack[0].Nobject; 33 34 for (i = 0; i < Nobject; i++) { … … 39 40 40 41 stack = GetHostStack (PCONTROL_HOST_BUSY); 42 ASSERT (stack != NULL, "stack missing"); 41 43 Nobject = stack[0].Nobject; 42 44 for (i = 0; i < Nobject; i++) { … … 50 52 Nwait = 0; 51 53 stack = GetHostStack (PCONTROL_HOST_IDLE); 54 ASSERT (stack != NULL, "stack missing"); 55 52 56 gprint (GP_ERR, "waiting for clients to exit"); 53 57 while ((Nwait < 15) && stack[0].Nobject) { -
trunk/Ohana/src/opihi/pcontrol/host.c
r8424 r10652 68 68 } 69 69 70 # if 071 host = PullHostFromStackByName (PCONTROL_HOST_IDLE, argv[2]);72 if (host) {73 StopHost (host);74 OffHost (host);75 ClearCheckPoint ();76 return (TRUE);77 }78 host = PullHostFromStackByName (PCONTROL_HOST_DOWN, argv[2]);79 if (host) {80 OffHost (host);81 ClearCheckPoint ();82 return (TRUE);83 }84 /* XXX the 'markoff' flag is not being checked */85 host = PullHostFromStackByName (PCONTROL_HOST_BUSY, argv[2]);86 if (host) {87 host[0].markoff = TRUE;88 PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);89 ClearCheckPoint ();90 return (TRUE);91 }92 /* XXX the 'markoff' flag is not being checked */93 host = PullHostFromStackByName (PCONTROL_HOST_DONE, argv[2]);94 if (host) {95 host[0].markoff = TRUE;96 PutHost (host, PCONTROL_HOST_DONE, STACK_BOTTOM);97 ClearCheckPoint ();98 return (TRUE);99 }100 gprint (GP_LOG, "host %s is not found (already off?)\n", argv[2]);101 ClearCheckPoint ();102 return (FALSE);103 }104 # endif105 106 70 if (!strcasecmp (argv[1], "DELETE")) { 107 71 // a check point is not required: no possible thief -
trunk/Ohana/src/opihi/pcontrol/rconnect.c
r8546 r10652 17 17 IOBuffer buffer; 18 18 struct timespec request, remain; 19 20 ASSERT (command != NULL, "command is NULL"); 21 ASSERT (hostname != NULL, "hostname is NULL"); 22 ASSERT (shell != NULL, "shell is NULL"); 23 ASSERT (stdio != NULL, "stdio is NULL"); 19 24 20 25 bzero (stdin_fd, 2*sizeof(int)); -
trunk/Ohana/src/opihi/pcontrol/status.c
r8424 r10652 28 28 29 29 stack = GetJobStack (Nstack); 30 ASSERT (stack != NULL, "programming error"); 30 31 31 32 LockStack (stack); … … 35 36 for (i = 0; i < Nobject; i++) { 36 37 job = stack[0].object[i]; 38 ASSERT (job != NULL, "programming error"); 37 39 gprint (GP_LOG, "%d %s %d ", i, job[0].hostname, job[0].argc); 38 40 for (j = 0; j < job[0].argc; j++) {
Note:
See TracChangeset
for help on using the changeset viewer.
