Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
72297f9
Use <CGAL/atomic.h> to protect <CGAL/Handle_for.h>
lrineau Jan 18, 2016
1e786f5
Use a mutex to protect Lazy
lrineau Jan 18, 2016
80fec0c
Add protected function approx_with_locked_mutex()
afabri Jan 19, 2016
f76ca56
remove debug output
afabri Jan 19, 2016
9dddf28
Improve <CGAL/mutex.h>
lrineau Jan 15, 2016
3b05efa
Use approx_with_locked_mutex() also in <CGAL/Root_of_traits_specializ…
lrineau Jan 19, 2016
43a5d39
Add a mutex in <CGAL/Handle.h> as well
lrineau Jan 19, 2016
20b803d
Fix a crash: do not use Double-Checked Locking
lrineau Jan 20, 2016
87d4fbd
Fix <CGAL/mutex.h> with Boost<1.53
lrineau Jan 21, 2016
d813ad3
Fix <CGAL/Handle.h> and <CGAL/Handle_for.h> with Boost<1.53
lrineau Jan 21, 2016
5310341
Protect with CGAL_HANDLE_FOR_DO_NOT_USE_ATOMIC
lrineau Oct 31, 2016
42ed5f4
Always use placement new
lrineau Oct 31, 2016
74a3a3c
Re-add the assertion
lrineau Oct 31, 2016
062ee0b
Protect with CGAL_LAZY_DO_NOT_USE_MUTEX
lrineau Oct 31, 2016
31f4e20
Merge remote-tracking branch 'cgal/master' into lrineau-Filtered_kern…
lrineau Sep 16, 2019
3d78298
Do not call CGAL_assume on `count` when it is an atomic variable
lrineau Sep 16, 2019
8a1553c
Add a bench
lrineau Sep 18, 2019
d26213f
Remove the use of Boost atomic_count
lrineau Sep 19, 2019
d806037
Fix a typo in the message
lrineau Sep 19, 2019
8414683
Use mutexes in Lazy.h
lrineau Sep 19, 2019
17e41ec
WIP: Lazy and Lazy_exact_nt with or without atomic shared counting
lrineau Sep 25, 2019
dadd482
Use a hierarchy of tag
lrineau Sep 26, 2019
5b96ec3
Add Thread_safe_epeck
lrineau Sep 27, 2019
9fe512e
Add the bench
lrineau Sep 27, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,23 @@

\section Developer_manualThreadlocal Thread Local Storage

The header file <CGAL/tss.h> provides a macro `CGAL_STATIC_THREAD_LOCAL_VARIABLE(TYPE,VAR,ARG1)`
that creates a thread local variable `VAR` of type `TYPE`, and passes `ARG1` to the
constructor. The variable is either `threadlocal`, or a `boost::thread_specific_ptr`,
or just a local variable if `CGAL_HAS_THREADS` is not defined.

The header file <CGAL/tss.h> provides a macro
`CGAL_STATIC_THREAD_LOCAL_VARIABLE(TYPE,VAR,ARG1)` that creates a thread
local variable `VAR` of type `TYPE`, and passes `ARG1` to the constructor.
The variable either is qualified by `thread_local` (C++11), or uses a
`boost::thread_specific_ptr`, or is just a local variable if
`CGAL_HAS_THREADS` is not defined.

\section Developer_manualMutex Mutex

The header file <CGAL/mutex.h> provides a macro `CGAL_MUTEX` and a macro `CGAL_SCOPED_LOCK(M)` that is either a `std::unique_lock<std::mutex>` or a `boost::mutex::scoped_lock`.
The header file <CGAL/mutex.h> defines a namespace `CGAL::cpp11` that
contains `mutex`, `unique_lock`, and `lock_guard`. The implementation uses
either the C++11 implementation from the namespace `std`, if available, and
falls back to the Boost implementation from Boost.Thread.

The header file <CGAL/mutex.h> also provides a macro `CGAL_MUTEX` that is
`CGAL::cpp11:mutex` , and a macro `CGAL_SCOPED_LOCK(M)`, that takes a
`CGAL_MUTEX` variable as parameter, and evaluates to
`CGAL::cpp11::lock_guard<CGAL::cpp11::mutex> guard(M)`.

*/
Loading