--- a/website/idxthreads/threadingRecoll.txt
+++ b/website/idxthreads/threadingRecoll.txt
@@ -108,9 +108,9 @@
The _WorkQueue_ object is implemented by a reasonably simple class, which
manages an input queue on which client append jobs, and a set of worker
threads, which retrieve and perform the jobs, and whose lifetime are
-managed by the _WorkQueue_ object. The
-https://bitbucket.org/medoc/recoll/src/f06f3aba912045d6ad52e9a0fd930b95e363fd10/src/utils/workqueue.h?at=default[implementation] is straightforward with
-*POSIX* threads synchronization functions and C++ *STL* data structures.
+managed by the _WorkQueue_ object. The implementation is straightforward
+with *POSIX* threads synchronization functions and C++ *STL* data
+structures.
In practise it proved quite simple to modify existing code to create a job
object and put it on the queue, instead of calling the downstream routine
@@ -175,9 +175,8 @@
to protect the access with a mutex lock. It is trivial to encapsulate
the locks in C++ objects to use the "Resource Acquisition is
Initialization" idiom, easily making sure that locks are freed when
- exiting the critical section. A very basic
- https://bitbucket.org/medoc/recoll/src/f06f3aba9120/src/utils/ptmutex.h?at=default[example of implementation]
- can be found in the *Recoll* source code.
+ exiting the critical section. Recoll used to include a basic home-made
+ implementation, but now lets C++11 work for it.
* Things which can stay: this is mostly initialization data such as value
tables which are computed once, and then stay logically constant during
program execution. In order to be sure of a correct single-threaded
@@ -377,9 +376,8 @@
created the filter. But the filter would often be reused by a different
thread, with the consequence that the configuration object was now accessed
and modified by two unsynchronized threads... Resetting the config pointer
-at the time of filter reuse was the
-https://bitbucket.org/medoc/recoll/commits/943de4b78818079b0eb6ffd0fcbdfdd0746b4a40[ridiculously
-simple (almost)single-line fix] to this evasive problem.
+at the time of filter reuse was a very simple (almost)single-line fix to
+this evasive problem.
Looking at multi-threaded stack dumps is mostly fun for people with several
heads, which is unfortunately not my case, so I was quite elated when this