Changeset 2846
- Timestamp:
- Aug 30, 2016, 2:48:33 PM (9 years ago)
- Location:
- trunk/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/Makefile.kmk
r2413 r2846 34 34 include $(PATH_SUB_CURRENT)/kObjCache/Makefile.kmk 35 35 include $(PATH_SUB_CURRENT)/misc/Makefile.kmk 36 ifeq ($(KBUILD_TARGET),win) 37 include $(PATH_SUB_CURRENT)/kLibTweaker/Makefile.kmk 38 include $(PATH_SUB_CURRENT)/kWorker/Makefile.kmk 39 endif 36 40 37 41 include $(FILE_KBUILD_SUB_FOOTER) -
trunk/src/kWorker/kWorker.c
r2844 r2846 3815 3815 if (cbActually > cbToRead) 3816 3816 cbActually = cbToRead; 3817 else if (cbActually < cbToRead) 3818 ((KU8 *)pvBuffer)[cbActually] = '\0'; // hack hack hack 3817 3819 3818 3820 kHlpMemCopy(pvBuffer, &pFsObj->pbCached[pHandle->offFile], cbActually); … … 5243 5245 HANDLE hPipe = INVALID_HANDLE_VALUE; 5244 5246 5247 5245 5248 /* 5246 5249 * Parse arguments. -
trunk/src/kmk/job.c
r2844 r2846 467 467 #else 468 468 if (exit_sig == 0) 469 # if defined(KMK) && defined(KBUILD_OS_WINDOWS) 470 error (NILF, ignored ? _("[%s] Error %d (%#x) (ignored)") : 471 _("*** [%s] Error %d (%#x)"), 472 target_name, exit_code, exit_code); 473 # else 469 474 error (NILF, ignored ? _("[%s] Error %d (ignored)") : 470 475 _("*** [%s] Error %d"), 471 476 target_name, exit_code); 477 # endif 472 478 else 473 479 error (NILF, "*** [%s] %s%s", -
trunk/src/kmk/kmkbuiltin.h
r2844 r2846 65 65 extern int kSubmitSubProcGetResult(intptr_t pvUser, int *prcExit, int *piSigNo); 66 66 extern int kSubmitSubProcKill(intptr_t pvUser, int iSignal); 67 extern void kSubmitSubProcCleanup(intptr_t pvUser); 67 68 #endif 68 69 extern int kmk_builtin_kDepIDB(int argc, char **argv, char **envp); -
trunk/src/kmk/kmkbuiltin/kSubmit.c
r2844 r2846 188 188 else 189 189 { 190 assert(pList->p Head== pWorker);191 pList->p Head= pPrev;190 assert(pList->pTail == pWorker); 191 pList->pTail = pPrev; 192 192 } 193 193 … … 199 199 else 200 200 { 201 assert(pList->pTail == pWorker); 202 pList->pTail = pNext; 203 } 201 assert(pList->pHead == pWorker); 202 pList->pHead = pNext; 203 } 204 205 assert(!pList->pHead || pList->pHead->pPrev == NULL); 206 assert(!pList->pTail || pList->pTail->pNext == NULL); 204 207 205 208 assert(pList->cEntries > 0); … … 235 238 assert(pList->pHead == NULL); 236 239 pList->pHead = pWorker; 237 pList->pTail = pWorker; 238 } 240 } 241 pList->pTail = pWorker; 242 243 assert(pList->pHead->pPrev == NULL); 244 assert(pList->pTail->pNext == NULL); 239 245 240 246 pList->cEntries++; … … 954 960 case STATUS_ILLEGAL_INSTRUCTION: *piSigNo = SIGILL; break; 955 961 } 962 956 963 return 0; 957 964 } … … 961 968 { 962 969 return -1; 970 } 971 972 973 /** 974 * Called by process_cleanup when it's done with the worker. 975 * 976 * @param pvUser The worker instance. 977 */ 978 void kSubmitSubProcCleanup(intptr_t pvUser) 979 { 980 PWORKERINSTANCE pWorker = (PWORKERINSTANCE)pvUser; 981 kSubmitListUnlink(&g_BusyList, pWorker); 982 kSubmitListAppend(&g_IdleList, pWorker); 963 983 } 964 984 … … 1515 1535 #ifdef KBUILD_OS_WINDOWS 1516 1536 /* Quote the argv elements, but first we need unquoted pszExecute. */ 1517 char *pszFreeExec = NULL; 1537 int const cArgs = argc - iArg; 1538 int iArg2; 1539 char **papszArgsOrg = (char **)xmalloc(sizeof(argv[0]) * cArgs); 1518 1540 if (!pszExecutable) 1519 pszExecutable = pszFreeExec = xstrdup(argv[0]); 1520 quote_argv(argc, argv, fWatcomBrainDamage, 1 /*fFreeOrLeak*/); 1541 pszExecutable = argv[iArg]; 1542 memcpy(papszArgsOrg, &argv[iArg], sizeof(argv[0]) * cArgs); 1543 quote_argv(cArgs, &argv[iArg], fWatcomBrainDamage, 0 /*fFreeOrLeak*/); 1521 1544 #endif 1522 1545 … … 1530 1553 1531 1554 #ifdef KBUILD_OS_WINDOWS 1532 free(pszFreeExec); 1555 for (iArg2 = 0; iArg2 < cArgs; iArg2++) 1556 if (argv[iArg2 + iArg] != papszArgsOrg[iArg2]) 1557 { 1558 free(argv[iArg2 + iArg]); 1559 argv[iArg2 + iArg] = papszArgsOrg[iArg2]; 1560 } 1561 free(papszArgsOrg); 1533 1562 #endif 1534 1563 } -
trunk/src/kmk/w32/subproc/sub_proc.c
r2844 r2846 218 218 219 219 proc_array[proc_index++] = pSubProc; 220 *pPid = ( HANDLE)pSubProc;220 *pPid = (intptr_t)pSubProc; 221 221 return 0; 222 222 } … … 1123 1123 #ifdef KMK 1124 1124 } else if (pproc->enmType == kSubmit) { 1125 /* nothing to do. */1125 kSubmitSubProcCleanup(pproc->clue); 1126 1126 } else { 1127 1127 assert(0);
Note:
See TracChangeset
for help on using the changeset viewer.