Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Ulrich Drepper committed Jun 30, 2002
1 parent 8b8cc76 commit 95fdc6a
Show file tree
Hide file tree
Showing 16 changed files with 134 additions and 41 deletions.
5 changes: 5 additions & 0 deletions linuxthreads/ChangeLog
@@ -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.
Expand Down
14 changes: 10 additions & 4 deletions linuxthreads/Examples/ex9.c
Expand Up @@ -32,20 +32,26 @@ 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)
error (EXIT_FAILURE, 0, "cannot initialize barrier");

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;
}

Expand Down Expand Up @@ -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);
Expand Down
3 changes: 3 additions & 0 deletions localedata/ChangeLog
@@ -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].

Expand Down
79 changes: 79 additions & 0 deletions localedata/locales/mt_MT
Expand Up @@ -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"
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion manual/argp.texi
Expand Up @@ -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 */
Expand Down
10 changes: 5 additions & 5 deletions manual/arith.texi
Expand Up @@ -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

Expand Down Expand Up @@ -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).

Expand Down
24 changes: 12 additions & 12 deletions manual/charset.texi
Expand Up @@ -177,9 +177,9 @@ code like
@smallexample
@{
int c;
...
@dots{}
while ((c = getc (fp)) < 0)
...
@dots{}
@}
@end smallexample

Expand All @@ -190,9 +190,9 @@ are used:
@smallexample
@{
wint_t c;
...
@dots{}
while ((c = wgetc (fp)) != WEOF)
...
@dots{}
@}
@end smallexample

Expand Down Expand Up @@ -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;
@}
@}
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -523,15 +523,15 @@ 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.} */
const wchar_t empty[] = L"";
const wchar_t *srcp = empty;
wcsrtombs (outbuf, &srcp, outbuflen, &state);
@}
...
@dots{}
@}
@end smallexample

Expand Down Expand Up @@ -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;
Expand All @@ -925,7 +925,7 @@ solution.
return NULL;
@}
@}
...
@dots{}
@end smallexample

Here we perform the conversion that might overflow the buffer so that
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion manual/ctype.texi
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions manual/filesys.texi
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions manual/install.texi
Expand Up @@ -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.
Expand All @@ -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,
Expand All @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion manual/locale.texi
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions manual/memory.texi
Expand Up @@ -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
Expand Down Expand Up @@ -1003,7 +1003,7 @@ my_free_hook (void *ptr, const void *caller)
main ()
@{
...
@dots{}
@}
@end smallexample

Expand Down
4 changes: 2 additions & 2 deletions manual/resource.texi
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 95fdc6a

Please sign in to comment.