htl: move __pthtread_total into libc

htl/pt-nthreads.c: new file.
htl/Makefile: Add it to routine.
htl/Versions: version it as private libc symbol.
htl/pt-create.c: remove his definition here.
htl/pt-internal.h: add propertie to it declaration.

Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org>
Message-Id: <20230318095826.1125734-2-gfleury@disroot.org>
This commit is contained in:
Guy-Fleury Iteriteka 2023-03-18 11:58:24 +02:00 committed by Samuel Thibault
parent 51a121eb36
commit 7bba5bd8e8
5 changed files with 26 additions and 7 deletions

View File

@ -164,7 +164,7 @@ headers := \
distribute :=
routines := forward libc_pthread_init alloca_cutoff htlfreeres
routines := forward libc_pthread_init alloca_cutoff htlfreeres pt-nthreads
shared-only-routines = forward
extra-libs := libpthread

View File

@ -30,6 +30,7 @@ libc {
__libc_alloca_cutoff;
__libc_pthread_init;
__pthread_cleanup_stack;
__pthread_total;
}
}

View File

@ -36,12 +36,6 @@
# include <locale.h>
#endif
/* The total number of pthreads currently active. This is defined
here since it would be really stupid to have a threads-using
program that doesn't call `pthread_create'. */
unsigned int __pthread_total;
/* The entry-point for new threads. */
static void
entry_point (struct __pthread *self, void *(*start_routine) (void *), void *arg)

View File

@ -165,6 +165,7 @@ __pthread_dequeue (struct __pthread *thread)
/* The total number of threads currently active. */
extern unsigned int __pthread_total;
libc_hidden_proto (__pthread_total)
/* Concurrency hint. */
extern int __pthread_concurrency;

23
htl/pt-nthreads.c Normal file
View File

@ -0,0 +1,23 @@
/* Thread counter variable.
Copyright (C) 2021-2023 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
#include <pt-internal.h>
/* Number of threads running. */
unsigned int __pthread_total;
libc_hidden_data_def (__pthread_total)