| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 University of Szeged | 2 * Copyright (C) 2011 University of Szeged |
| 3 * Copyright (C) 2011 Gabor Loki <loki@webkit.org> | 3 * Copyright (C) 2011 Gabor Loki <loki@webkit.org> |
| 4 * All rights reserved. | 4 * All rights reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| 22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| 23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 26 */ | 26 */ |
| 27 | 27 |
| 28 #ifndef ParallelJobs_h | 28 #ifndef ParallelJobs_h |
| 29 #define ParallelJobs_h | 29 #define ParallelJobs_h |
| 30 | 30 |
| 31 #include <wtf/Assertions.h> | 31 #include "wtf/Assertions.h" |
| 32 #include <wtf/Noncopyable.h> | 32 #include "wtf/Noncopyable.h" |
| 33 #include <wtf/RefPtr.h> | 33 #include "wtf/RefPtr.h" |
| 34 #include <wtf/Vector.h> | 34 #include "wtf/Vector.h" |
| 35 | 35 |
| 36 // Usage: | 36 // Usage: |
| 37 // | 37 // |
| 38 // // Initialize parallel jobs | 38 // // Initialize parallel jobs |
| 39 // ParallelJobs<TypeOfParameter> parallelJobs(&worker [, requestedNumberOfJo
bs]); | 39 // ParallelJobs<TypeOfParameter> parallelJobs(&worker [, requestedNumberOfJo
bs]); |
| 40 // | 40 // |
| 41 // // Fill the parameter array | 41 // // Fill the parameter array |
| 42 // for(i = 0; i < parallelJobs.numberOfJobs(); ++i) { | 42 // for(i = 0; i < parallelJobs.numberOfJobs(); ++i) { |
| 43 // TypeOfParameter& params = parallelJobs.parameter(i); | 43 // TypeOfParameter& params = parallelJobs.parameter(i); |
| 44 // params.attr1 = localVars ... | 44 // params.attr1 = localVars ... |
| 45 // ... | 45 // ... |
| 46 // } | 46 // } |
| 47 // | 47 // |
| 48 // // Execute parallel jobs | 48 // // Execute parallel jobs |
| 49 // parallelJobs.execute(); | 49 // parallelJobs.execute(); |
| 50 // | 50 // |
| 51 | 51 |
| 52 #if !defined(ENABLE_THREADING_LIBDISPATCH) && HAVE(DISPATCH_H) | 52 #if !defined(ENABLE_THREADING_LIBDISPATCH) && HAVE(DISPATCH_H) |
| 53 #define ENABLE_THREADING_LIBDISPATCH 1 | 53 #define ENABLE_THREADING_LIBDISPATCH 1 |
| 54 #elif !defined(THREADING_GENERIC) | 54 #elif !defined(THREADING_GENERIC) |
| 55 #define ENABLE_THREADING_GENERIC 1 | 55 #define ENABLE_THREADING_GENERIC 1 |
| 56 #endif | 56 #endif |
| 57 | 57 |
| 58 #if ENABLE(THREADING_GENERIC) | 58 #if ENABLE(THREADING_GENERIC) |
| 59 #include <wtf/ParallelJobsGeneric.h> | 59 #include "wtf/ParallelJobsGeneric.h" |
| 60 | 60 |
| 61 #elif ENABLE(THREADING_LIBDISPATCH) | 61 #elif ENABLE(THREADING_LIBDISPATCH) |
| 62 #include <wtf/ParallelJobsLibdispatch.h> | 62 #include "wtf/ParallelJobsLibdispatch.h" |
| 63 | 63 |
| 64 #else | 64 #else |
| 65 #error "No parallel processing API for ParallelJobs" | 65 #error "No parallel processing API for ParallelJobs" |
| 66 | 66 |
| 67 #endif | 67 #endif |
| 68 | 68 |
| 69 namespace WTF { | 69 namespace WTF { |
| 70 | 70 |
| 71 template<typename Type> | 71 template<typename Type> |
| 72 class ParallelJobs { | 72 class ParallelJobs { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 99 private: | 99 private: |
| 100 ParallelEnvironment m_parallelEnvironment; | 100 ParallelEnvironment m_parallelEnvironment; |
| 101 Vector<Type> m_parameters; | 101 Vector<Type> m_parameters; |
| 102 }; | 102 }; |
| 103 | 103 |
| 104 } // namespace WTF | 104 } // namespace WTF |
| 105 | 105 |
| 106 using WTF::ParallelJobs; | 106 using WTF::ParallelJobs; |
| 107 | 107 |
| 108 #endif // ParallelJobs_h | 108 #endif // ParallelJobs_h |
| OLD | NEW |