1139374e6Szrj /*
2139374e6Szrj  * Copyright (c) 2020 The DragonFly Project.  All rights reserved.
3139374e6Szrj  *
4139374e6Szrj  * Redistribution and use in source and binary forms, with or without
5139374e6Szrj  * modification, are permitted provided that the following conditions
6139374e6Szrj  * are met:
7139374e6Szrj  * 1. Redistributions of source code must retain the above copyright
8139374e6Szrj  *    notice, this list of conditions and the following disclaimer.
9139374e6Szrj  * 2. Redistributions in binary form must reproduce the above copyright
10139374e6Szrj  *    notice, this list of conditions and the following disclaimer in the
11139374e6Szrj  *    documentation and/or other materials provided with the distribution.
12139374e6Szrj  *
13139374e6Szrj  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14139374e6Szrj  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15139374e6Szrj  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
16139374e6Szrj  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
17139374e6Szrj  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
18139374e6Szrj  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
19139374e6Szrj  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20139374e6Szrj  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
21139374e6Szrj  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22139374e6Szrj  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
23139374e6Szrj  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24139374e6Szrj  * SUCH DAMAGE.
25139374e6Szrj  */
26139374e6Szrj 
27139374e6Szrj #include "namespace.h"
28*537c8762Szrj #include <sys/single_threaded.h>
29139374e6Szrj #include <pthread.h>
30139374e6Szrj #include <pthread_np.h>
31139374e6Szrj #include "un-namespace.h"
32139374e6Szrj 
33139374e6Szrj int
_pthread_is_threaded_np(void)34139374e6Szrj _pthread_is_threaded_np(void)
35139374e6Szrj {
36*537c8762Szrj         return (__libc_single_threaded == 0);
37139374e6Szrj }
38139374e6Szrj 
39139374e6Szrj __strong_reference(_pthread_is_threaded_np, pthread_is_threaded_np);
40