]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc
1 // { dg-require-sharedlib "" }
2 // { dg-options "-g -O2 -pthread -ldl" { target *-*-linux* } }
4 // Copyright (C) 2004, 2005, 2009, 2010 Free Software Foundation, Inc.
6 // This file is part of the GNU ISO C++ Library. This library is free
7 // software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the
9 // Free Software Foundation; either version 3, or (at your option)
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING3. If not see
19 // <http://www.gnu.org/licenses/>.
27 check_dlopen(void*& h
)
30 void* tmp
= dlopen("./testsuite_shared.so", RTLD_LAZY
);
35 // Throws std::logic_error on NULL string.
36 std::string
error(dlerror());
37 throw std::runtime_error(error
);
39 catch (const std::logic_error
&)
50 typedef void (*function_type
) (void);
52 fn
= reinterpret_cast<function_type
>(dlsym(h
, "try_allocation"));
56 std::string
error(dlerror());
57 throw std::runtime_error(error
);
59 catch (const std::logic_error
&)
66 check_dlclose(void*& h
)
73 std::string
error(dlerror());
74 throw std::runtime_error(error
);
76 catch (const std::logic_error
&)
96 pthread_create(&th
, 0, tf
, 0);