2002-06-19  Steven Munroe  <sjmunroe@vnet.ibm.com>

	* Examples/ex9.c (main):  Use list of children and join them.
	(thread): Do not call exit.
This commit is contained in:
Ulrich Drepper 2002-06-30 04:04:20 +00:00
parent 8b8cc76fa4
commit 95fdc6a0f6
16 changed files with 134 additions and 41 deletions

View File

@ -1,3 +1,8 @@
2002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
* Examples/ex9.c (main): Use list of children and join them.
(thread): Do not call exit.
2002-06-20 Ulrich Drepper <drepper@redhat.com>
* spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.

View File

@ -32,7 +32,8 @@ static pthread_barrier_t barrier;
int
main (void)
{
pthread_t th;
pthread_t th;
pthread_t thread_list[NUM_THREADS];
int i;
if (pthread_barrier_init (&barrier, NULL, NUM_THREADS + 1) != 0)
@ -40,12 +41,17 @@ main (void)
for (i = 0; i < NUM_THREADS; i++)
{
if (pthread_create (&th, NULL, thread, NULL) != 0)
if (pthread_create (&thread_list[i], NULL, thread, NULL) != 0)
error (EXIT_FAILURE, 0, "cannot create thread");
}
(void) thread (NULL);
/* notreached */
for (i = 0; i < NUM_THREADS; i++)
{
pthread_join(thread_list[i], NULL);
}
return 0;
}
@ -87,7 +93,7 @@ thread (void *arg)
printf ("%04d: last serial thread %lu terminating process\n",
++linecount, (unsigned long) self);
funlockfile (stdout);
exit (0);
return;
}
pthread_exit(NULL);

View File

@ -1,5 +1,8 @@
2002-06-29 Ulrich Drepper <drepper@redhat.com>
* locales/mt_MT: Add locale-specific collation info.
Patch by Ramon Casha <ramon.casha@linux.org.mt> [PR libc/3701].
* locales/en_AU: Add am/pm support.
Patch partly by maffew@cat.org.au [PR libc/3911].

View File

@ -3,6 +3,9 @@ escape_char /
% Maltese language locale for Malta.
% Contributed by Kentaroh Noji <knoji@jp.ibm.com> and
% Tetsuji Orita <orita@jp.ibm.com>.
%
% collating order changes by Ramon Casha <ramon.casha@linux.org.mt>
% and Pablo Saratxaga <pablo@mandrakesoft.com> -- 2002-05-08
LC_IDENTIFICATION
title "Maltese language locale for Malta"
@ -37,9 +40,85 @@ END LC_CTYPE
LC_COLLATE
% a b c c. d e f g. g gh/ h h/ i ie j k l m n o p q r s t u v w x y z. z
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
collating-symbol <c.>
collating-symbol <g.>
collating-symbol <h->
collating-symbol <z.>
collating-symbol <g-h--mt>
collating-element <G-H-> from "<U0047><U0126>"
collating-element <g-h-> from "<U0067><U0127>"
collating-element <G-h-> from "<U0047><U0127>"
collating-element <g-H-> from "<U0067><U0126>"
collating-symbol <i-e-mt>
collating-element <I-E> from "<U0049><U0045>"
collating-element <i-e> from "<U0069><U0065>"
collating-element <I-e> from "<U0049><U0065>"
collating-element <i-E> from "<U0069><U0045>"
collating-symbol <CAP-MIN>
collating-symbol <MIN-CAP>
reorder-after <MIN>
<MIN-CAP>
reorder-after <CAP>
<CAP-MIN>
reorder-after <c>
<c.>
reorder-after <f>
<g.>
reorder-after <g>
<g-h--mt>
reorder-after <h>
<h->
reorder-after <i>
<i-e-mt>
reorder-after <y>
<z.>
reorder-after <U0063>
<U010B> <c.>;<PCT>;<MIN>;IGNORE
reorder-after <U0043>
<U010A> <c.>;<PCT>;<CAP>;IGNORE
reorder-after <U0066>
<U0121> <g.>;<PCT>;<MIN>;IGNORE
reorder-after <U0046>
<U0120> <g.>;<PCT>;<CAP>;IGNORE
reorder-after <U0067>
<g-h-> <g-h--mt>;<PCL>;<MIN>;IGNORE
<g-H-> <g-h--mt>;<PCL>;<MIN-CAP>;IGNORE
reorder-after <U0047>
<G-H-> <g-h--mt>;<PCL>;<CAP>;IGNORE
<G-h-> <g-h--mt>;<PCL>;<CAP-MIN>;IGNORE
reorder-after <U0068>
<U0127> <h->;<OBL>;<MIN>;IGNORE
reorder-after <U0048>
<U0126> <h->;<OBL>;<CAP>;IGNORE
reorder-after <U0069>
<i-e> <i-e-mt>;<PCL>;<MIN>;IGNORE
<i-E> <i-e-mt>;<PCL>;<MIN-CAP>;IGNORE
reorder-after <U0049>
<I-E> <i-e-mt>;<PCL>;<CAP>;IGNORE
<I-e> <i-e-mt>;<PCL>;<CAP-MIN>;IGNORE
reorder-after <U0079>
<U017C> <z.>;<PCT>;<MIN>;IGNORE
reorder-after <U0059>
<U017B> <z.>;<PCT>;<CAP>;IGNORE
reorder-end
END LC_COLLATE
LC_MONETARY

View File

@ -467,7 +467,7 @@ Here's an example that uses both, for different args:
@smallexample
...
@dots{}
case ARGP_KEY_ARG:
if (@var{state}->arg_num == 0)
/* First argument */

View File

@ -755,9 +755,9 @@ is a simple example of the way to use @code{fetestexcept}:
feclearexcept (FE_ALL_EXCEPT);
f = compute ();
raised = fetestexcept (FE_OVERFLOW | FE_INVALID);
if (raised & FE_OVERFLOW) @{ /* ... */ @}
if (raised & FE_INVALID) @{ /* ... */ @}
/* ... */
if (raised & FE_OVERFLOW) @{ /* @dots{} */ @}
if (raised & FE_INVALID) @{ /* @dots{} */ @}
/* @dots{} */
@}
@end smallexample
@ -2396,8 +2396,8 @@ or to the largest representable value if the floating-point format
doesn't support infinities. You can prepend a @code{"+"} or @code{"-"}
to specify the sign. Case is ignored when scanning these strings.
The strings @code{"nan"} and @code{"nan(@var{chars...})"} are converted
to NaN. Again, case is ignored. If @var{chars...} are provided, they
The strings @code{"nan"} and @code{"nan(@var{chars@dots{}})"} are converted
to NaN. Again, case is ignored. If @var{chars@dots{}} are provided, they
are used in some unspecified fashion to select a particular
representation of NaN (there can be several).

View File

@ -177,9 +177,9 @@ code like
@smallexample
@{
int c;
...
@dots{}
while ((c = getc (fp)) < 0)
...
@dots{}
@}
@end smallexample
@ -190,9 +190,9 @@ are used:
@smallexample
@{
wint_t c;
...
@dots{}
while ((c = wgetc (fp)) != WEOF)
...
@dots{}
@}
@end smallexample
@ -437,7 +437,7 @@ problem:
while (! feof (fp))
@{
fread (&buf[len], 1, MB_CUR_MAX - len, fp);
/* @r{... process} buf */
/* @r{@dots{} process} buf */
len -= used;
@}
@}
@ -491,7 +491,7 @@ clearing the whole variable with code such as follows:
mbstate_t state;
memset (&state, '\0', sizeof (state));
/* @r{from now on @var{state} can be used.} */
...
@dots{}
@}
@end smallexample
@ -523,7 +523,7 @@ Code using @code{mbsinit} often looks similar to this:
mbstate_t state;
memset (&state, '\0', sizeof (state));
/* @r{Use @var{state}.} */
...
@dots{}
if (! mbsinit (&state))
@{
/* @r{Emit code to return to initial state.} */
@ -531,7 +531,7 @@ Code using @code{mbsinit} often looks similar to this:
const wchar_t *srcp = empty;
wcsrtombs (outbuf, &srcp, outbuflen, &state);
@}
...
@dots{}
@}
@end smallexample
@ -911,7 +911,7 @@ this solution is unsuitable, there is a very slow but more accurate
solution.
@smallexample
...
@dots{}
if (len < MB_CUR_LEN)
@{
mbstate_t temp_state;
@ -925,7 +925,7 @@ solution.
return NULL;
@}
@}
...
@dots{}
@end smallexample
Here we perform the conversion that might overflow the buffer so that
@ -2395,7 +2395,7 @@ The @code{int __internal_use} element is mostly used together with
if (!data->__internal_use
&& data->__invocation_counter == 0)
/* @r{Emit prolog.} */
...
@dots{}
@end smallexample
This element must never be modified.
@ -2708,7 +2708,7 @@ gconv (struct __gconv_step *step, struct __gconv_step_data *data,
@{
struct __gconv_step *next_step = step + 1;
struct __gconv_step_data *next_data = data + 1;
...
@dots{}
@end smallexample
The @code{next_step} pointer references the next step information and

View File

@ -625,7 +625,7 @@ is_in_class (int c, const char *class)
return isalpha (c);
if (strcmp (class, "cntrl") == 0)
return iscntrl (c);
...
@dots{}
return 0;
@}
@end smallexample

View File

@ -453,7 +453,7 @@ Code to call @code{readdir_r} could look like this:
@} u;
if (readdir_r (dir, &u.d, &res) == 0)
...
@dots{}
@end smallexample
@end deftypefun
@ -1501,7 +1501,7 @@ modify the attributes of a file.
and what their values mean.
* Reading Attributes:: How to read the attributes of a file.
* Testing File Type:: Distinguishing ordinary files,
directories, links...
directories, links@dots{}
* File Owner:: How ownership for new files is determined,
and how to change it.
* Permission Bits:: How information about a file's access

View File

@ -45,7 +45,7 @@ GNU Make, and possibly others. @xref{Tools for Compilation}, below.
GNU libc can be compiled in the source directory, but we strongly advise
building it in a separate build directory. For example, if you have
unpacked
the glibc sources in @file{/src/gnu/glibc-2.2.0}, create a directory
the glibc sources in @file{/src/gnu/glibc-2.3}, create a directory
@file{/src/gnu/glibc-build} to put the object files in. This allows
removing the whole build directory in case an error occurs, which is the
safest way to get a fresh start and should always be done.
@ -54,7 +54,7 @@ From your object directory, run the shell script @file{configure} located
at the top level of the source tree. In the scenario above, you'd type
@smallexample
$ ../glibc-2.2.0/configure @var{args...}
$ ../glibc-2.3/configure @var{args@dots{}}
@end smallexample
Please note that even if you're building in a separate build directory,
@ -64,9 +64,9 @@ directory, especially some files in the manual subdirectory.
@noindent
@code{configure} takes many options, but you can get away with knowing
only two: @samp{--prefix} and @samp{--enable-add-ons}. The
@code{--prefix} option tells @code{configure} where you want glibc
@code{--prefix} option tells @code{configure} where you want glibc
installed. This defaults to @file{/usr/local}. The
@samp{--enable-add-ons} option tells @code{configure} to use all the
@samp{--enable-add-ons} option tells @code{configure} to use all the
add-on bundles it finds in the source directory. Since important
functionality is provided in add-ons, you should always specify this
option.

View File

@ -1201,7 +1201,7 @@ least also in the IBM AIX library.
This function would normally be used like this:
@smallexample
...
@dots{}
/* @r{Use a safe default.} */
_Bool doit = false;

View File

@ -751,7 +751,7 @@ End with a line saying just "end".
>call mcheck(0)
>continue
>end
(gdb) ...
(gdb) @dots{}
@end smallexample
This will however only work if no initialization function of any object
@ -1003,7 +1003,7 @@ my_free_hook (void *ptr, const void *caller)
main ()
@{
...
@dots{}
@}
@end smallexample

View File

@ -546,7 +546,7 @@ any one time is equal to the number of CPUs, you can easily extrapolate
the information.
The functions described in this section are all defined by the POSIX.1
and POSIX.1b standards (the @code{sched...} functions are POSIX.1b).
and POSIX.1b standards (the @code{sched@dots{}} functions are POSIX.1b).
However, POSIX does not define any semantics for the values that these
functions get and set. In this chapter, the semantics are based on the
Linux kernel's implementation of the POSIX standard. As you will see,
@ -656,7 +656,7 @@ the high priority process group. All the priority in the world won't
stop an interrupt handler from running and delivering a signal to the
process if you hit Control-C.
Some systems use absolute priority as a means of allocating a fixed
Some systems use absolute priority as a means of allocating a fixed
percentage of CPU time to a process. To do this, a super high priority
privileged process constantly monitors the process' CPU usage and raises
its absolute priority when the process isn't getting its entitled share

View File

@ -657,7 +657,7 @@ Example:
#include <sys/syscall.h>
#include <errno.h>
...
@dots{}
int rc;
@ -677,7 +677,7 @@ following preferable code:
#include <sys/stat.h>
#include <errno.h>
...
@dots{}
int rc;

View File

@ -497,7 +497,7 @@ sometimes not possible):
@smallexample
FILE *fp;
@{
...
@dots{}
flockfile (fp);
fputs ("This is test number ", fp);
fprintf (fp, "%d\n", test);
@ -2450,7 +2450,7 @@ For example:
@smallexample
#define myprintf(a, b, c, d, e, rest...) \
printf (mytemplate , ## rest...)
printf (mytemplate , ## rest)
@end smallexample
@noindent
@ -5295,7 +5295,7 @@ the following in the environment before calling the @code{fmtmsg} function
the first time:
@smallexample
MSGVERB=@var{keyword}[:@var{keyword}[:...]]
MSGVERB=@var{keyword}[:@var{keyword}[:@dots{}]]
@end smallexample
Valid @var{keyword}s are @code{label}, @code{severity}, @code{text},
@ -5314,7 +5314,7 @@ described above are available. Any other numeric value would make
If the user puts @code{SEV_LEVEL} with a format like
@smallexample
SEV_LEVEL=[@var{description}[:@var{description}[:...]]]
SEV_LEVEL=[@var{description}[:@var{description}[:@dots{}]]]
@end smallexample
@noindent

View File

@ -1435,7 +1435,7 @@ character, not the number of bytes.
Also the format string @var{template} is a wide character string. Since
all characters needed to specify the format string are in the basic
character set it is portably possible to write format strings in the C
source code using the @code{L"..."} notation. The parameter
source code using the @code{L"@dots{}"} notation. The parameter
@var{brokentime} has the same meaning as in the @code{strftime} call.
The @code{wcsftime} function supports the same flags, modifiers, and