2
0
mirror of https://github.com/boostorg/thread.git synced 2026-01-26 07:02:12 +00:00
Commit Graph

126 Commits

Author SHA1 Message Date
Austin Beer
de7e354a8e Improved the timespec implementation
* Added a constructor to timespec_duration, real_timespec_timepoint, and mono_timespec_timepoint that takes an intmax_t representing the number of nanoseconds in the timespec.
* Added a getNs() function to timespec_duration, real_timespec_timepoint, and mono_timespec_timepoint that returns an intmax_t representing the number of nanoseconds in the timespec.
* Added a timespec_milliseconds() function that takes an integer representing milliseconds and returns a timespec_duration.
* Removed some unnecessary BOOST_SYMBOL_VISIBLE declarations.
* Removed the unnecessary d100 variable declarations.
2017-09-21 09:28:18 -06:00
Austin Beer
285d35f43f Cleanup
* Deleted a couple of unnecessary calls to internal_clock_t::now() in v2/thread.hpp.
* Deleted the hidden::sleep_until() functions, which are no longer being used.
* Deleted the condition_variable::do_wait_for() function, which is no longer being used.
* Deleted the sleep_mutex and sleep_condition variables in pthread/thread_data.hpp, which are no longer being used.
2017-09-19 16:12:22 -06:00
Vicente J. Botet Escriba
a18dfa1fea Merge branch 'feature/timespec_clocks' of github.com:boostorg/thread into feature/timespec_clocks 2017-09-19 23:46:45 +02:00
Austin Beer
a9706f0745 Fixed sleep(TimeDuration const& rel_time) when internal clock is not monotonic but CLOCK_MONOTONIC is available. 2017-09-19 15:06:06 -06:00
Vicente J. Botet Escriba
8e718893e5 Merge branch 'feature/timespec_clocks' of github.com:boostorg/thread into feature/timespec_clocks 2017-09-19 22:09:38 +02:00
Austin Beer
aebbcda3fe Updates to fix interruption-point inconsistencies.
* Fixed the interruption-point versions of sleep_for/sleep_until() to always use condition variables.
* Fixed the no-interruption-point versions of sleep_for/sleep_until() to use pthread_delay_np or nanosleep whenever possible.
* Updated hidden::sleep_for() to always use a condition variable.
* Updated no_interruption_point::hidden::sleep_for() to use pthread_delay_np or nanosleep whenever possible.
2017-09-19 09:04:57 -06:00
Vicente J. Botet Escriba
5b4d230d4a Merge branch 'develop' into feature/timespec_clocks 2017-09-19 13:01:20 +02:00
Vicente J. Botet Escriba
48a2a960da remove some warnings. 2017-09-19 03:20:46 +02:00
Vicente J. Botet Escriba
82eed2ca6d make use of do_wait_until when BOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC is defined as proposed by Austin Beer.. 2017-09-17 19:09:09 +02:00
Vicente J. Botet Escriba
14deba107f minor chnages. 2017-09-07 22:41:31 +02:00
Vicente J. Botet Escriba
81fe14fda2 Update after test from brainwave64. 2017-09-04 07:35:33 +02:00
Vicente J. Botet Escriba
1063638763 Replace timespec by specific clock/timepoint/duration like classes that represent the monotonic, the real or the one used internaly at the platform level. Make use of these clocks/timepoints/durations almost all around. Need to replace yet all the occurrences of get_system_time(). 2017-09-02 14:42:25 +02:00
Vicente J. Botet Escriba
510e66aef7 rename make_ready to notify_deferred. 2017-08-26 10:39:31 +02:00
Vicente J. Botet Escriba
28bf345c96 make more evident that timespec is realtime and not monotonic. 2017-08-16 20:30:59 +02:00
David Olsen
047205fbbd Fix sleep_until() to use a realtime clock
boost::this_thread::no_interruption_point::hidden::sleep_until() takes an absolute time as a parameter and converts it to a duration for the length of time to sleep.  But the current time that the absolute time is compared against came from timespec_now(), which, on Linux at least, uses CLOCK_MONOTONIC, which "represents monotonic time since some unspecified starting point."  Since timespec_now() may have a different starting point than the time that was passed to sleep_until(), that can result in sleep_until() sleeping for an *extremely* long time, causing the program to appear to hang.

Change sleep_until() to get the current time from timespec_now_realtime(), which uses CLOCK_REALTIME, which has the same epoch as the time that is passed to sleep_until().
2017-08-02 15:19:32 -07:00
Vicente J. Botet Escriba
2c3acef281 remove unuseful files. 2016-04-21 19:11:55 +02:00
Vicente J. Botet Escriba
587ad42548 fix hiden rename 2016-04-21 00:10:30 +02:00
Vicente J. Botet Escriba
57f34e1ea4 fix memory leak. 2016-04-20 23:52:30 +02:00
Vicente J. Botet Escriba
daae305bf7 fix memory leak. 2016-04-20 23:50:43 +02:00
Philippe Daouadi
e29a4129e8 fix leak in tls 2016-04-16 10:48:40 +02:00
Vicente J. Botet Escriba
47357de276 rollback BOOST_THREAD_PATCH. 2016-03-23 23:15:50 +01:00
Vicente J. Botet Escriba
c0fe04ecc9 ensure the void* in the cleanup is shared during the call. 2015-11-08 11:04:40 +01:00
Gaurav
40b3dc0c2c Remove duplicate conditional check.
thread_info already checked against Null at line no 86, no need to check again.
2015-11-03 14:28:37 +05:30
Vicente J. Botet Escriba
0fdd4fc620 remove comments. 2015-09-24 01:36:41 +02:00
Vicente J. Botet Escriba
242cf35c51 Try patch for oldticket #3926 - thread_specific_ptr + dlopen library causes a SIGSEGV 2015-09-08 19:24:15 +02:00
Vicente J. Botet Escriba
4d45da6c06 Apply patch #11302. 2015-05-18 21:26:46 +02:00
Vicente J. Botet Escriba
0218136ed7 Try to see if share_from_this helps on the thread sanitize data race. 2015-04-25 15:41:49 +02:00
Vicente J. Botet Escriba
1bd78bbeea cleanup commented code. 2015-04-25 11:16:03 +02:00
Vicente J. Botet Escriba
ec6a1fcf80 try to get rid of data race. 2015-03-10 00:48:12 +01:00
Vicente J. Botet Escriba
c678b3794b Crash issue while calling run_thread_exit_callbacks. Related to #11053. 2015-03-01 01:37:35 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9cc1357c95 Revert "Try to include some STL headers which Android libc++ claims have not been included."
This reverts commit b571686e5d.
2015-02-06 12:21:55 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b571686e5d Try to include some STL headers which Android libc++ claims have not been included. 2015-02-06 12:09:52 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ce8049f83f Looks like timeconv.inl may be completely unnecessary, so remove. 2014-12-14 02:01:13 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
035217985c Could find no code anywhere in Boost which uses to_time(), to_timespec_duration(), to_duration() nor to_microduration(), so removed the code. 2014-12-14 01:38:50 +00:00
Vicente J. Botet Escriba
c6817aeb1c fall back to harware concurrency when physical concurrency doesn't works. 2014-07-03 07:08:07 +02:00
Vicente J. Botet Escriba
c266790b8d Try to fix phisical_concurrency on PowerPC arch. 2014-06-29 23:48:18 +02:00
Vicente J. Botet Escriba
cb8a4a27bb Throw if malloc fails. 2014-05-31 18:19:43 +02:00
Vicente J. Botet Escriba
54646e9959 Added sleep_for/until with no interruption point. 2014-02-16 23:33:03 +01:00
Tim Blechmann
ae831efe08 thread: physical_concurrency - work around getline issue in libc++
[SVN r86216]
2013-10-09 15:25:31 +00:00
Tim Blechmann
fc65611e82 Revert "Thread: provide physical concurrency conditional until it no regression is introduced."
This reverts commit 271ba281aecd5c556b2b863a9f05a8066e717854.

[SVN r86215]
2013-10-09 15:24:58 +00:00
Vicente J. Botet Escriba
4a63d4992c Thread: provide physical concurrency conditional until it no regression is introduced.
[SVN r85926]
2013-09-26 06:54:33 +00:00
Tim Blechmann
04e3d918fb thread: implement physical_concurrency
[SVN r85864]
2013-09-24 06:41:24 +00:00
Vicente J. Botet Escriba
ed6459ecd2 Thread: make code uniform heap_new/heap_delete pairwise.
[SVN r85840]
2013-09-22 22:22:08 +00:00
Vicente J. Botet Escriba
5c78582794 Thread: refactor make_ready_at_thread_exit + inhibit at_thread_exit functions from external threads.
[SVN r85732]
2013-09-17 20:57:46 +00:00
Vicente J. Botet Escriba
21b2bbc8ca Thread: make use of atomic on the header of once_atomic to avoid not needed cast that report some warnings.
[SVN r82905]
2013-02-15 17:05:49 +00:00
Vicente J. Botet Escriba
65416bb8b6 Thread: make the pthread binary to don't depend on shared_mutex.hpp + #7982
[SVN r82757]
2013-02-06 06:40:30 +00:00
Vicente J. Botet Escriba
e72184e9ee Thread: Added atomic once implementation + variadi call_once for pthread
[SVN r82513]
2013-01-16 21:49:59 +00:00
Vicente J. Botet Escriba
a50176c259 Thread: rollback default version 3 change.
[SVN r82302]
2012-12-31 15:10:17 +00:00
Vicente J. Botet Escriba
c8edd6c795 Thread: minor refactorings
[SVN r81842]
2012-12-10 22:02:16 +00:00
Vicente J. Botet Escriba
593e9e0f2f Thread: fix shared_ptr implicit conversion to bool introduced in [81780]
[SVN r81788]
2012-12-08 11:01:15 +00:00