aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/src/thread.cc
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2012-01-23 23:12:01 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2012-01-23 23:12:01 +0000
commit8bae34da8a4625767bc7e1caab295855963ff280 (patch)
tree200164266c0ab8f9433667f716a8c4d1276e8473 /libstdc++-v3/src/thread.cc
parent22197246e3547e2838192d45b29b03761544588a (diff)
downloadgcc-8bae34da8a4625767bc7e1caab295855963ff280.zip
gcc-8bae34da8a4625767bc7e1caab295855963ff280.tar.gz
gcc-8bae34da8a4625767bc7e1caab295855963ff280.tar.bz2
[multiple changes]
2012-01-20 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/49829 Add libc++98convenience.la, libc++11convenience.la. * src/c++98: New directory. * src/c++11: New directory. * acinclude.m4: (GLIBCXX_CONFIGURE): Add src-c++98, src-c++11. * configure: Regenerated. * Makefile.am (hosted_source): Add src-c++98, src-c++11 to SUBDIRS. * Makefile.in: Regenerate. * libsupc++/Makefile.am (AM_CXXFLAGS): USe XTEMPLATE_FLAGS for -fno-implicit-templates. * libsupc++/Makefile.in: Regenerate. * src/Makefile.am (inst_sources): Move... C++11 files into separate directory for libstdc++11convenience.la. Files are: fstream-inst.cc, string-inst.cc, wlocale-inst.cc, wstring-inst.cc). (sources): Move C++11 files. Files are: compatibility-c++0x.cc, compatibility-atomic-c++0x.cc, debug.cc, functexcept.cc, functional.cc, hash_c++0x.cc, hashtable_c++0x.cc, limits.cc, system_error.cc, placeholders.cc, regex.cc, shared_ptr.cc, mutex.cc, condition_variable.cc, chrono.cc, thread.cc, future.cc. (libstdc++convenience.la): Add new target. (SUBDIRS): Add c++11, c++98. * src/Makefile.in: Regenerate. * src/c++11/Makefile.am: New. * src/c++11/Makefile.in: Generate. * src/c++98/Makefile.am: New, C++98 files. * src/c++98/Makefile.in: Generate. 2012-01-23 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/49829 Add libc++98convenience.la, libc++11convenience.la. * src/c++98: New directory. * src/c++11: New directory. * acinclude.m4: (GLIBCXX_CONFIGURE): Add src-c++98, src-c++11. * configure: Regenerated. * Makefile.am (hosted_source): Add src-c++98, src-c++11 to SUBDIRS. * Makefile.in: Regenerate. * libsupc++/Makefile.am (AM_CXXFLAGS): USe XTEMPLATE_FLAGS for -fno-implicit-templates. * libsupc++/Makefile.in: Regenerate. * src/Makefile.am (inst_sources): Move... C++11 files into separate directory for libstdc++11convenience.la. Files are: fstream-inst.cc, string-inst.cc, wlocale-inst.cc, wstring-inst.cc). (sources): Move C++11 files. Files are: compatibility-c++0x.cc, compatibility-atomic-c++0x.cc, debug.cc, functexcept.cc, functional.cc, hash_c++0x.cc, hashtable_c++0x.cc, limits.cc, system_error.cc, placeholders.cc, regex.cc, shared_ptr.cc, mutex.cc, condition_variable.cc, chrono.cc, thread.cc, future.cc. (libstdc++convenience.la): Add new target. (SUBDIRS): Add c++11, c++98. * src/Makefile.in: Regenerate. * src/c++11/Makefile.am: New. * src/c++11/Makefile.in: Generate. * src/c++98/Makefile.am: New, C++98 files. * src/c++98/Makefile.in: Generate. From-SVN: r183457
Diffstat (limited to 'libstdc++-v3/src/thread.cc')
-rw-r--r--libstdc++-v3/src/thread.cc142
1 files changed, 0 insertions, 142 deletions
diff --git a/libstdc++-v3/src/thread.cc b/libstdc++-v3/src/thread.cc
deleted file mode 100644
index ff034b1..0000000
--- a/libstdc++-v3/src/thread.cc
+++ /dev/null
@@ -1,142 +0,0 @@
-// thread -*- C++ -*-
-
-// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 3, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-
-#include <thread>
-#include <system_error>
-#include <cerrno>
-
-#if defined(_GLIBCXX_USE_GET_NPROCS)
-# include <sys/sysinfo.h>
-# define _GLIBCXX_NPROCS get_nprocs()
-#elif defined(_GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP)
-# define _GLIBCXX_NPROCS pthread_num_processors_np()
-#elif defined(_GLIBCXX_USE_SYSCTL_HW_NCPU)
-# include <stddef.h>
-# include <sys/sysctl.h>
-static inline int get_nprocs()
-{
- int count;
- size_t size = sizeof(count);
- int mib[] = { CTL_HW, HW_NCPU };
- if (!sysctl(mib, 2, &count, &size, NULL, 0))
- return count;
- return 0;
-}
-# define _GLIBCXX_NPROCS get_nprocs()
-#elif defined(_GLIBCXX_USE_SC_NPROCESSORS_ONLN)
-# include <unistd.h>
-# define _GLIBCXX_NPROCS sysconf(_SC_NPROCESSORS_ONLN)
-#elif defined(_GLIBCXX_USE_SC_NPROC_ONLN)
-# include <unistd.h>
-# define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN)
-#else
-# define _GLIBCXX_NPROCS 0
-#endif
-
-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
-
-namespace std _GLIBCXX_VISIBILITY(default)
-{
- namespace
- {
- extern "C" void*
- execute_native_thread_routine(void* __p)
- {
- thread::_Impl_base* __t = static_cast<thread::_Impl_base*>(__p);
- thread::__shared_base_type __local;
- __local.swap(__t->_M_this_ptr);
-
- __try
- {
- __t->_M_run();
- }
- __catch(...)
- {
- std::terminate();
- }
-
- return 0;
- }
- }
-
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
-
- void
- thread::join()
- {
- int __e = EINVAL;
-
- if (_M_id != id())
- __e = __gthread_join(_M_id._M_thread, 0);
-
- if (__e)
- __throw_system_error(__e);
-
- _M_id = id();
- }
-
- void
- thread::detach()
- {
- int __e = EINVAL;
-
- if (_M_id != id())
- __e = __gthread_detach(_M_id._M_thread);
-
- if (__e)
- __throw_system_error(__e);
-
- _M_id = id();
- }
-
- void
- thread::_M_start_thread(__shared_base_type __b)
- {
- if (!__gthread_active_p())
- __throw_system_error(int(errc::operation_not_permitted));
-
- __b->_M_this_ptr = __b;
- int __e = __gthread_create(&_M_id._M_thread,
- &execute_native_thread_routine, __b.get());
- if (__e)
- {
- __b->_M_this_ptr.reset();
- __throw_system_error(__e);
- }
- }
-
- unsigned int
- thread::hardware_concurrency() noexcept
- {
- int __n = _GLIBCXX_NPROCS;
- if (__n < 0)
- __n = 0;
- return __n;
- }
-
-_GLIBCXX_END_NAMESPACE_VERSION
-} // namespace std
-
-#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1