user19101: Can you please point me to a tutorial for an explanation of the specific "Critical section" implementation that is used in main.cpp. I would like to understand a bit better how does it work. I studied concurrency before so I have some background to be able to understand it.

user5757: Are you talking about the CCriticalSection class?  As you can see in sync.h, it's just a wrapper around Boost's recursive_mutex class.  (It looks like the CCriticalSection name comes from Windows.)
You can read all about Boost's threading API in its documentation.

19101: <p>Can you please point me to a tutorial for an explanation of the specific "Critical section" implementation that is used in main.cpp. I would like to understand a bit better how does it work. I studied concurrency before so I have some background to be able to understand it.</p>
 5757: <p>Are you talking about the <code>CCriticalSection</code> class?  As you can see in <code>sync.h</code>, it's just a wrapper around Boost's <code>recursive_mutex</code> class.  (It looks like the <code>CCriticalSection</code> name comes from Windows.)</p>

<p>You can read all about Boost's threading API in <a href="http://www.boost.org/doc/libs/1_56_0/doc/html/thread.html" rel="nofollow">its documentation</a>.</p>
