mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Update.
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:
parent
8b8cc76fa4
commit
95fdc6a0f6
@ -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.
|
||||
|
@ -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);
|
||||
|
@ -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].
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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).
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user