Browse Source
Removing OpenMP
Removing OpenMP
This commit finishes the removal of OpenMP from the KiCad codebase. Removed in this commit are the OpenMP calls in 3d-viewer and qa/polygon_triangulation as well as all references in CMakeLists.txt std::thread is used instead for multithreaded computationpull/13/head
16 changed files with 857 additions and 833 deletions
-
83d-viewer/3d_canvas/create_3Dgraphic_brd_items.cpp
-
1123d-viewer/3d_canvas/create_layer_items.cpp
-
473d-viewer/3d_rendering/3d_render_ogl_legacy/clayer_triangles.cpp
-
33d-viewer/3d_rendering/3d_render_ogl_legacy/clayer_triangles.h
-
23d-viewer/3d_rendering/3d_render_raytracing/accelerators/ccontainer2d.cpp
-
33d-viewer/3d_rendering/3d_render_raytracing/accelerators/ccontainer2d.h
-
12733d-viewer/3d_rendering/3d_render_raytracing/c3d_render_raytracing.cpp
-
43d-viewer/3d_rendering/3d_render_raytracing/c3d_render_raytracing.h
-
593d-viewer/3d_rendering/cimage.cpp
-
813d-viewer/openmp_mutex.h
-
18CMakeLists.txt
-
11common/geometry/shape_poly_set.cpp
-
1cvpcb/CMakeLists.txt
-
3include/geometry/shape_poly_set.h
-
7pcbnew/CMakeLists.txt
-
58qa/polygon_triangulation/test_polygon_triangulation.cpp
1273
3d-viewer/3d_rendering/3d_render_raytracing/c3d_render_raytracing.cpp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,81 +0,0 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt> |
|||
* Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html |
|||
* or you may search the http://www.gnu.org website for the version 2 license, |
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
|
|||
|
|||
/** |
|||
* @file openmp_mutex.h |
|||
* @brief a mutex for openmp got from the website: |
|||
* http://bisqwit.iki.fi/story/howto/openmp/ |
|||
* by Joel Yliluoma <bisqwit@iki.fi> |
|||
*/ |
|||
|
|||
#ifndef _OPENMP_MUTEX_H |
|||
#define _OPENMP_MUTEX_H |
|||
|
|||
#ifdef _OPENMP |
|||
|
|||
# include <omp.h> |
|||
|
|||
struct MutexType |
|||
{ |
|||
MutexType() { omp_init_lock( &lock ); } |
|||
~MutexType() { omp_destroy_lock( &lock ); } |
|||
void Lock() { omp_set_lock( &lock ); } |
|||
void Unlock() { omp_unset_lock( &lock ); } |
|||
|
|||
MutexType( const MutexType& ) { omp_init_lock( &lock ); } |
|||
MutexType& operator= ( const MutexType& ) { return *this; } |
|||
public: |
|||
omp_lock_t lock; |
|||
}; |
|||
|
|||
#else |
|||
|
|||
/// A dummy mutex that doesn't actually exclude anything, |
|||
/// but as there is no parallelism either, no worries. |
|||
struct MutexType |
|||
{ |
|||
void Lock() {} |
|||
void Unlock() {} |
|||
}; |
|||
#endif |
|||
|
|||
/// An exception-safe scoped lock-keeper. |
|||
struct ScopedLock |
|||
{ |
|||
explicit ScopedLock( MutexType& m ) : mut( m ), locked( true ) { mut.Lock(); } |
|||
~ScopedLock() { Unlock(); } |
|||
void Unlock() { if( !locked ) return; locked = false; mut.Unlock(); } |
|||
void LockAgain() { if( locked ) return; mut.Lock(); locked = true; } |
|||
|
|||
private: |
|||
MutexType& mut; |
|||
bool locked; |
|||
|
|||
private: // prevent copying the scoped lock. |
|||
void operator=(const ScopedLock&); |
|||
ScopedLock(const ScopedLock&); |
|||
}; |
|||
|
|||
#endif // _OPENMP_MUTEX_H |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue