diff --git a/lib/pls/CMakeLists.txt b/lib/pls/CMakeLists.txt index 170cb67..7653def 100644 --- a/lib/pls/CMakeLists.txt +++ b/lib/pls/CMakeLists.txt @@ -1,67 +1,69 @@ # List all required files here (cmake best practice to NOT automate this step!) add_library(pls STATIC - include/pls/pls.h src/pls.cpp + include/pls/pls.h src/pls.cpp include/pls/algorithms/invoke_parallel.h include/pls/algorithms/invoke_parallel_impl.h + include/pls/algorithms/parallel_for.h + include/pls/algorithms/parallel_for_impl.h include/pls/internal/base/spin_lock.h - include/pls/internal/base/tas_spin_lock.h src/internal/base/tas_spin_lock.cpp - include/pls/internal/base/ttas_spin_lock.h src/internal/base/ttas_spin_lock.cpp - include/pls/internal/base/thread.h src/internal/base/thread.cpp + include/pls/internal/base/tas_spin_lock.h src/internal/base/tas_spin_lock.cpp + include/pls/internal/base/ttas_spin_lock.h src/internal/base/ttas_spin_lock.cpp + include/pls/internal/base/swmr_spin_lock.h src/internal/base/swmr_spin_lock.cpp + include/pls/internal/base/thread.h src/internal/base/thread.cpp include/pls/internal/base/thread_impl.h - include/pls/internal/base/barrier.h src/internal/base/barrier.cpp + include/pls/internal/base/barrier.h src/internal/base/barrier.cpp include/pls/internal/base/system_details.h include/pls/internal/base/error_handling.h - include/pls/internal/base/alignment.h src/internal/base/alignment.cpp + include/pls/internal/base/alignment.h src/internal/base/alignment.cpp - include/pls/internal/data_structures/aligned_stack.h src/internal/data_structures/aligned_stack.cpp + include/pls/internal/data_structures/aligned_stack.h src/internal/data_structures/aligned_stack.cpp include/pls/internal/data_structures/aligned_stack_impl.h - include/pls/internal/data_structures/deque.h src/internal/data_structures/deque.cpp + include/pls/internal/data_structures/deque.h src/internal/data_structures/deque.cpp include/pls/internal/helpers/prohibit_new.h include/pls/internal/helpers/profiler.h include/pls/internal/helpers/mini_benchmark.h include/pls/internal/helpers/unique_id.h - include/pls/internal/scheduling/root_task.h src/internal/scheduling/root_task.cpp - include/pls/internal/scheduling/thread_state.h src/internal/scheduling/thread_state.cpp - include/pls/internal/scheduling/abstract_task.h src/internal/scheduling/abstract_task.cpp - include/pls/internal/scheduling/scheduler.h src/internal/scheduling/scheduler.cpp + include/pls/internal/scheduling/root_task.h src/internal/scheduling/root_task.cpp + include/pls/internal/scheduling/thread_state.h src/internal/scheduling/thread_state.cpp + include/pls/internal/scheduling/abstract_task.h src/internal/scheduling/abstract_task.cpp + include/pls/internal/scheduling/scheduler.h src/internal/scheduling/scheduler.cpp include/pls/internal/scheduling/scheduler_impl.h include/pls/internal/scheduling/run_on_n_threads_task.h src/internal/scheduling/run_on_n_threads_task.cpp - include/pls/internal/scheduling/fork_join_task.h src/internal/scheduling/fork_join_task.cpp - include/pls/internal/scheduling/scheduler_memory.h src/internal/scheduling/scheduler_memory.cpp - include/pls/internal/scheduling/parallel_iterator_task.h - include/pls/internal/scheduling/parallel_iterator_task_impl.h + include/pls/internal/scheduling/fork_join_task.h src/internal/scheduling/fork_join_task.cpp + include/pls/internal/scheduling/scheduler_memory.h src/internal/scheduling/scheduler_memory.cpp + include/pls/internal/scheduling/parallel_iterator_task.h include/pls/internal/scheduling/parallel_iterator_task_impl.h src/internal/scheduling/parallel_iterator_task.cpp) # Add everything in `./include` to be in the include path of this project target_include_directories(pls PUBLIC - $ - $ + $ + $ PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src # TODO: Set this up when we require private headers -) + ${CMAKE_CURRENT_SOURCE_DIR}/src # TODO: Set this up when we require private headers + ) # Add cmake dependencies here if needed target_link_libraries(pls Threads::Threads # pthread support -) -if(EASY_PROFILER) + ) +if (EASY_PROFILER) target_link_libraries(pls easy_profiler) -endif() +endif () # Rules for istalling the library on a system # ...binaries INSTALL(TARGETS pls EXPORT pls-targets LIBRARY - DESTINATION lib/pls + DESTINATION lib/pls ARCHIVE - DESTINATION lib/pls -) + DESTINATION lib/pls + ) # ...all headers in `include` INSTALL( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/pls diff --git a/lib/pls/include/pls/internal/data_structures/work_stealing_deque.h b/lib/pls/include/pls/internal/data_structures/work_stealing_deque.h index 23f734d..e74d376 100644 --- a/lib/pls/include/pls/internal/data_structures/work_stealing_deque.h +++ b/lib/pls/include/pls/internal/data_structures/work_stealing_deque.h @@ -78,9 +78,6 @@ class work_stealing_deque { std::atomic tail_; cas_integer previous_tail_; - base::spin_lock lock_{}; // TODO: Remove after debugging - - public: using state = aligned_stack::state;