boost timed_wait doesn't wait if date is in 2116 year
<p>The example:</p>

<pre><code>boost::interprocess::interprocess_semaphore semDone(0);
long sec = 10;
boost::posix_time::ptime until = boost::posix_time::second_clock::universal_time() + boost::posix_time::seconds(sec);
bool ret = semDone.timed_wait(until);
</code></pre>

<p>It works perfectly on Linux at the time - the <code>timed_wait</code> waits for 10 seconds and then returns <code>false</code>.</p>

<p>However if I move the system date to <strong>2116</strong> year and re-run the app, the <code>timed_wait</code> call returns <code>false</code> immediately. There is the same problem with the boost's condition vars.</p>

<p>Could please anybody explain what's wrong with it?</p>

<p>Info: </p>

<ul>
<li>Linux sles12 3.12.39 <strong>x86_64</strong> GNU/Linux</li>
<li>g++ 4.8</li>
<li>boost 1.54</li>
</ul>

<p>UPD As I already wrote above, I'm running the test on <strong>64bit platform</strong>, and the size of <code>time_t</code> equals 8. So the answers advising to use 64bit <code>time_t</code> instead of 32bit are not applicable for the question.  </p>