This commit is contained in:
Maxime Gimeno 2020-01-21 10:05:19 +01:00
parent e3a20071a1
commit 35600534f0
3 changed files with 5 additions and 6 deletions

View File

@ -512,11 +512,9 @@ public:
Spatial_lock_grid_3(const Bbox_3 &bbox, int num_grid_cells_per_axis)
: Base(bbox, num_grid_cells_per_axis),
m_tls_thread_priorities(init_TLS_thread_priorities),
m_grid(num_grid_cells_per_axis*num_grid_cells_per_axis*num_grid_cells_per_axis)
m_grid(num_grid_cells_per_axis*num_grid_cells_per_axis*num_grid_cells_per_axis),
m_tls_thread_priorities(init_TLS_thread_priorities)
{
int num_cells =
num_grid_cells_per_axis*num_grid_cells_per_axis*num_grid_cells_per_axis;
// Explicitly initialize the atomics
std::vector<std::atomic<unsigned int> >::iterator it = m_grid.begin();
std::vector<std::atomic<unsigned int> >::iterator it_end = m_grid.end();

View File

@ -163,7 +163,8 @@ public:
// Random-pick an element to erase
int index_to_erase = rand() % m_values.size();
// If it exists
if (m_free_elements[index_to_erase].compare_and_swap(true, false) == false)
bool comparand = false;
if (m_free_elements[index_to_erase].compare_exchange_weak(comparand, true) )
{
m_cont.erase(m_iterators[index_to_erase]);
++m_num_erasures;

View File

@ -52,7 +52,7 @@ int main()
ParallelTriangulation T(V.begin(), V.end(), &locking_ds);
t.stop();
std::cerr << "Parallel construction takes " << t.time() << " sec. with "
<< tbb::task_scheduler_init::default_num_threads() << " threads" << std::endl;
<< std::thread::hardware_concurrency() << " threads" << std::endl;
#endif
return 0;