Changeset 19059 for trunk/psModules/src/imcombine/pmSubtractionThreads.c
- Timestamp:
- Aug 13, 2008, 5:25:55 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtractionThreads.c
r18962 r19059 8 8 #include "pmSubtractionMatch.h" 9 9 #include "pmSubtractionEquation.h" 10 #include "pmSubtraction.h" 10 11 11 12 bool threaded = false; // Run with threads? … … 16 17 } 17 18 18 void pmSubtractionThreadSetup(void) 19 // Initialise a mutex in each of the input 20 static void subtractionMutexInit(pmReadout *ro) 21 { 22 if (!ro) { 23 return; 24 } 25 26 if (ro->image) { 27 psMutexInit(ro->image); 28 } 29 if (ro->weight) { 30 psMutexInit(ro->weight); 31 } 32 33 return; 34 } 35 36 static void subtractionMutexDestroy(pmReadout *ro) 37 { 38 if (!ro) { 39 return; 40 } 41 42 if (ro->image) { 43 psMutexDestroy(ro->image); 44 } 45 if (ro->weight) { 46 psMutexDestroy(ro->weight); 47 } 48 49 return; 50 } 51 52 void pmSubtractionThreadsInit(pmReadout *out1, pmReadout *out2, pmReadout *in1, pmReadout *in2) 19 53 { 20 54 if (threaded) { 21 psAbort(" %s called multiple times.", __func__);55 psAbort("Already running threaded."); 22 56 } 23 57 24 58 threaded = true; 59 60 subtractionMutexInit(out1); 61 subtractionMutexInit(out2); 62 subtractionMutexInit(in1); 63 subtractionMutexInit(in2); 25 64 26 65 { … … 38 77 } 39 78 79 { 80 psThreadTask *task = psThreadTaskAlloc("PSMODULES_SUBTRACTION_CONVOLVE", 17); 81 task->function = &pmSubtractionConvolveThread; 82 psThreadTaskAdd(task); 83 psFree(task); 84 } 85 40 86 return; 41 87 } 42 88 89 90 void pmSubtractionThreadsFinalize(pmReadout *out1, pmReadout *out2, pmReadout *in1, pmReadout *in2) 91 { 92 if (!threaded) { 93 return; 94 } 95 96 threaded = false; 97 psThreadTaskRemove("PSMODULES_SUBTRACTION_ORDER"); 98 psThreadTaskRemove("PSMODULES_SUBTRACTION_CALCULATE_EQUATION"); 99 psThreadTaskRemove("PSMODULES_SUBTRACTION_CONVOLVE"); 100 101 subtractionMutexDestroy(out1); 102 subtractionMutexDestroy(out2); 103 subtractionMutexDestroy(in1); 104 subtractionMutexDestroy(in1); 105 return; 106 }
Note:
See TracChangeset
for help on using the changeset viewer.
