thread (__thread_data_base, thread): Rename member functions to match coding style.
2009-01-22 Jonathan Wakely <jwakely.gcc@gmail.com> * include/std/thread (__thread_data_base, thread): Rename member functions to match coding style. (thread::thread,thread::operator=): Define move operations. * src/thread.cc (__thread_data_base, thread): Rename member functions. * config/abi/pre/gnu.ver: Adjust. From-SVN: r143577
This commit is contained in:
parent
6a5af9dcd8
commit
78b580a99e
4 changed files with 30 additions and 14 deletions
|
@ -1,3 +1,11 @@
|
|||
2009-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||
|
||||
* include/std/thread (__thread_data_base, thread): Rename member
|
||||
functions to match coding style.
|
||||
(thread::thread,thread::operator=): Define move operations.
|
||||
* src/thread.cc (__thread_data_base, thread): Rename member functions.
|
||||
* config/abi/pre/gnu.ver: Adjust.
|
||||
|
||||
2009-01-22 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR libstdc++/38384
|
||||
|
|
|
@ -900,7 +900,7 @@ GLIBCXX_3.4.11 {
|
|||
_ZNSt10shared_ptrISt18__thread_data_baseED1Ev;
|
||||
_ZNSt12bad_weak_ptrD0Ev;
|
||||
_ZNSt12bad_weak_ptrD1Ev;
|
||||
_ZNSt6thread14__start_threadEv;
|
||||
_ZNSt6thread15_M_start_threadEv;
|
||||
_ZNSt6thread4joinEv;
|
||||
_ZNSt6thread6detachEv;
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ namespace std
|
|||
__thread_data_base() = default;
|
||||
virtual ~__thread_data_base() = default;
|
||||
|
||||
virtual void __run() = 0;
|
||||
virtual void _M_run() = 0;
|
||||
|
||||
__gthread_t _M_thread_handle;
|
||||
__thread_data_ptr _M_this_ptr;
|
||||
|
@ -80,7 +80,7 @@ namespace std
|
|||
: _M_func(std::forward<_Callable>(__f))
|
||||
{ }
|
||||
|
||||
void __run()
|
||||
void _M_run()
|
||||
{ _M_func(); }
|
||||
|
||||
private:
|
||||
|
@ -100,21 +100,29 @@ namespace std
|
|||
|
||||
template<typename _Callable>
|
||||
explicit thread(_Callable __f)
|
||||
: _M_thread_data(__make_thread_data(__f))
|
||||
{ __start_thread(); }
|
||||
: _M_thread_data(_M_make_thread_data(__f))
|
||||
{ _M_start_thread(); }
|
||||
|
||||
template<typename _Callable, typename... _Args>
|
||||
thread(_Callable&& __f, _Args&&... __args)
|
||||
: _M_thread_data(__make_thread_data(std::bind(__f, __args...)))
|
||||
{ __start_thread(); }
|
||||
: _M_thread_data(_M_make_thread_data(std::bind(__f, __args...)))
|
||||
{ _M_start_thread(); }
|
||||
|
||||
~thread()
|
||||
{ detach(); }
|
||||
|
||||
thread(const thread&) = delete;
|
||||
thread(thread&&);
|
||||
thread(thread&& __t)
|
||||
{ swap(__t); }
|
||||
|
||||
thread& operator=(const thread&) = delete;
|
||||
thread& operator=(thread&&);
|
||||
thread& operator=(thread&& __t)
|
||||
{
|
||||
if (joinable())
|
||||
detach();
|
||||
swap(__t);
|
||||
return *this;
|
||||
}
|
||||
|
||||
// members
|
||||
void
|
||||
|
@ -150,17 +158,17 @@ namespace std
|
|||
private:
|
||||
template<typename _Callable>
|
||||
__thread_data_ptr
|
||||
__make_thread_data(_Callable&& __f)
|
||||
_M_make_thread_data(_Callable&& __f)
|
||||
{
|
||||
return __thread_data_ptr(
|
||||
new __thread_data<_Callable>(std::forward<_Callable>(__f)));
|
||||
}
|
||||
|
||||
__thread_data_ptr
|
||||
__make_thread_data(void(*__f)())
|
||||
_M_make_thread_data(void(*__f)())
|
||||
{ return __thread_data_ptr(new __thread_data<void(*)()>(__f)); }
|
||||
|
||||
void __start_thread();
|
||||
void _M_start_thread();
|
||||
|
||||
__thread_data_ptr _M_thread_data;
|
||||
mutable mutex _M_thread_data_mutex;
|
||||
|
|
|
@ -46,7 +46,7 @@ namespace std
|
|||
|
||||
try
|
||||
{
|
||||
__local_thread_data->__run();
|
||||
__local_thread_data->_M_run();
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
|
@ -88,7 +88,7 @@ namespace std
|
|||
}
|
||||
|
||||
void
|
||||
thread::__start_thread()
|
||||
thread::_M_start_thread()
|
||||
{
|
||||
_M_thread_data->_M_this_ptr = _M_thread_data;
|
||||
int __e = __gthread_create(&_M_thread_data->_M_thread_handle,
|
||||
|
|
Loading…
Add table
Reference in a new issue