Changeset 37042
- Timestamp:
- Jul 17, 2014, 10:15:41 AM (12 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libkapa/src/KapaOpen.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libkapa/src/KapaOpen.c
r36833 r37042 1 1 # include "kapa_internal.h" 2 3 // kapa connection timeout is N_RETRY * 10000 usec 4 # define N_RETRY 2000 2 5 3 6 # define MY_PORT 2500 … … 9 12 static int *VALID = NULL; 10 13 11 char *_parse_nextword (char *string);12 14 int KapaLaunchCommand (char *line); 13 15 … … 283 285 } 284 286 285 # define NTRY 1000 287 INITTIME; 288 286 289 Ntry = 0; 287 while (Ntry < N TRY) {290 while (Ntry < N_RETRY) { 288 291 sock = KapaClientSocket ("localhost"); 289 292 if (sock != -1) break; … … 308 311 } 309 312 310 if (sock < 0) return (-1); 313 if (sock < 0) { 314 MARKTIME ("failed to connect to kapa after %f seconds\n", dtime); 315 int killStatus = kill (pid, SIGKILL); 316 if (killStatus) { 317 perror ("failed to kill process"); 318 } 319 int waitStatus = waitpid (pid, NULL, 0); 320 if (waitStatus == pid) { 321 fprintf (stderr, "harvested process %d\n", pid); 322 } else if (waitStatus < 0) { 323 fprintf (stderr, "failed to harvest process %d\n", pid); 324 } else if (waitStatus == 0) { 325 fprintf (stderr, "process not exited: %d\n", pid); 326 } else { 327 fprintf (stderr, "odd exit status: %d vs pid %d\n", waitStatus, pid); 328 } 329 return (-1); 330 } 331 311 332 return (sock); 312 333 } … … 350 371 fcntl (InitSocket, F_SETFL, O_NONBLOCK); 351 372 352 # define NTRY 1000 373 INITTIME; 374 353 375 Ntry = 0; 354 while (Ntry < N TRY) {376 while (Ntry < N_RETRY) { 355 377 fd = accept (InitSocket, (struct sockaddr *)&Address, &AddressLength); 356 378 if (fd != -1) break; … … 372 394 } 373 395 374 if (fd < 0) return (-1); 396 if (fd < 0) { 397 MARKTIME ("failed to connect to kapa after %f seconds\n", dtime); 398 kill (pid, SIGKILL); 399 waitpid (pid, NULL, WNOHANG); 400 return (-1); 401 } 375 402 376 403 // the client uses a BLOCKing socket by default … … 414 441 done = FALSE; 415 442 while (!done) { 416 q = _parse_nextword (p);443 q = parse_nextword (p); 417 444 if (q && *q) { 418 445 argv[i] = strncreate (p, q - p);
Note:
See TracChangeset
for help on using the changeset viewer.
