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