Changeset 7451 for trunk/tools
- Timestamp:
- Nov 24, 2001, 9:40:44 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/CmdQd/CmdQd.c
r7445 r7451 1 /* $Id: CmdQd.c,v 1.1 0 2001-11-24 06:05:31bird Exp $1 /* $Id: CmdQd.c,v 1.11 2001-11-24 20:40:44 bird Exp $ 2 2 * 3 3 * Command Queue Daemon / Client. … … 291 291 { 292 292 struct Job * pNext; /* Pointer to next job. */ 293 int iJobId; /* JobId. */ 293 294 int rc; /* Result. */ 294 295 PJOBOUTPUT pJobOutput; /* Output. */ … … 330 331 /* since we redirect standard files handles */ 331 332 /* and changes the currentdirectory. */ 333 334 PSZ pszSharedMem = SHARED_MEM_NAME; /* Default shared memname */ 335 /* Could be overridden by env.var. CMDQD_MEM_NAME. */ 332 336 333 337 /******************************************************************************* … … 367 371 int main(int argc, char **argv) 368 372 { 373 char * psz; 374 char szShrMemName[CCHMAXPATH]; 369 375 370 376 /* … … 380 386 } 381 387 return 0; 388 } 389 390 /* 391 * Check for environment variable which gives us 392 * the alternate shared mem name. 393 */ 394 if ((psz = getenv("CMDQD_MEM_NAME")) != NULL) 395 { 396 if (strlen(psz) >= CCHMAXPATH - sizeof("\\SHAREMEM\\")) 397 { 398 printf("fatal error: CMDQD_MEM_NAME is is too long.\n"); 399 return -1; 400 } 401 strcpy(pszSharedMem = &szShrMemName[0], "\\SHAREMEM\\"); 402 strcat(pszSharedMem, psz); 382 403 } 383 404 … … 493 514 " showfailedjobs - shows jobs which failed.\n" 494 515 "\n" 516 " To use multiple daemons for different purposed assing different\n" 517 " values to CMDQD_MEM_NAME (env.var.) for the sessions.\n" 518 "\n" 495 519 "Copyright (c) 2001 knut st. osmundsen (kosmunds@csc.com)\n" 496 520 ); … … 588 612 pJobQueueEnd = pJob; 589 613 } 590 cJobs++;614 pJob->iJobId = cJobs++; 591 615 DosReleaseMutexSem(hmtxJobQueue); 592 616 … … 804 828 */ 805 829 cch = sprintf(szTmp, 806 "------------------ Job %d\n"830 "------------------ JobId %d - %d\n" 807 831 " command: %s\n" 808 832 " curdir: %s\n" 809 833 " rcIgnore: %d\n", 834 pJob->iJobId, 810 835 iJob, 811 836 pJob->JobInfo.szCommand, … … 834 859 *pszOutput = '\0'; 835 860 pShrMem->u1.ShowJobsResponse.fMore = pJob != NULL; 861 if (!pJob) 862 DosReleaseMutexSem(hmtxJobQueue); 836 863 rc = shrmemSendDaemon(TRUE); 837 864 … … 913 940 */ 914 941 cch = sprintf(szTmp, 915 "------------------ Failed Job %d\n"942 "------------------ Failed JobId %d - %d\n" 916 943 " command: %s\n" 917 944 " curdir: %s\n" 918 945 " rc: %d (rcIgnore=%d)\n", 946 pJob->iJobId, 919 947 iJob, 920 948 pJob->JobInfo.szCommand, … … 944 972 *pszOutput = '\0'; 945 973 pShrMem->u1.ShowFailedJobsResponse.fMore = pJob != NULL; 974 if (!pJob) 975 DosReleaseMutexSem(hmtxJobQueueFine); 946 976 rc = shrmemSendDaemon(TRUE); 947 977 … … 1023 1053 */ 1024 1054 cch = sprintf(szTmp, 1025 "------------------ Running Job %d\n"1055 "------------------ Running JobId %d - %d\n" 1026 1056 " command: %s\n" 1027 1057 " curdir: %s\n" 1028 1058 " rcIgnore: %d\n", 1059 pJob->iJobId, 1029 1060 iJob, 1030 1061 pJob->JobInfo.szCommand, … … 1053 1084 *pszOutput = '\0'; 1054 1085 pShrMem->u1.ShowRunningJobsResponse.fMore = pJob != NULL; 1086 if (!pJob) 1087 DosReleaseMutexSem(hmtxJobQueue); 1055 1088 rc = shrmemSendDaemon(TRUE); 1056 1089 … … 1133 1166 */ 1134 1167 cch = sprintf(szTmp, 1135 "------------------ Completed Job %d\n"1168 "------------------ Completed JobId %d - %d\n" 1136 1169 " command: %s\n" 1137 1170 " curdir: %s\n" 1138 1171 " rcIgnore: %d\n", 1172 pJob->iJobId, 1139 1173 iJob, 1140 1174 pJob->JobInfo.szCommand, … … 1163 1197 *pszOutput = '\0'; 1164 1198 pShrMem->u1.ShowCompletedJobsResponse.fMore = pJob != NULL; 1199 if (!pJob) 1200 DosReleaseMutexSem(hmtxJobQueueFine); 1165 1201 rc = shrmemSendDaemon(TRUE); 1166 1202 … … 1392 1428 1393 1429 /* insert into running */ 1394 pJob 1430 pJob->pNext = NULL; 1395 1431 if (pJobRunningEnd) 1396 pJobRunningEnd ->pNext = pJob;1432 pJobRunningEnd = pJobRunningEnd->pNext = pJob; 1397 1433 else 1398 1434 pJobRunning = pJobRunningEnd = pJob; … … 1560 1596 while (pJobCur) 1561 1597 { 1562 if (pJobCur->pNext != pJob)1598 if (pJobCur->pNext == pJob) 1563 1599 { 1564 1600 pJobCur->pNext = pJob->pNext; … … 2000 2036 APIRET rc; 2001 2037 rc = DosGetNamedSharedMem((PPVOID)(PVOID)&pShrMem, 2002 SHARED_MEM_NAME,2038 pszSharedMem, 2003 2039 PAG_READ | PAG_WRITE); 2004 2040 if (!rc) … … 2226 2262 int rc; 2227 2263 rc = DosAllocSharedMem((PPVOID)(PVOID)&pShrMem, 2228 SHARED_MEM_NAME,2264 pszSharedMem, 2229 2265 SHARED_MEM_SIZE, 2230 2266 PAG_COMMIT | PAG_READ | PAG_WRITE); … … 2301 2337 */ 2302 2338 rc = DosGetNamedSharedMem((PPVOID)(PVOID)&pShrMem, 2303 SHARED_MEM_NAME,2339 pszSharedMem, 2304 2340 PAG_READ | PAG_WRITE); 2305 2341 if (rc)
Note:
See TracChangeset
for help on using the changeset viewer.