Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 30 Jun 2002 04:04:20 +0000 (04:04 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 30 Jun 2002 04:04:20 +0000 (04:04 +0000)
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.

16 files changed:
linuxthreads/ChangeLog
linuxthreads/Examples/ex9.c
localedata/ChangeLog
localedata/locales/mt_MT
manual/argp.texi
manual/arith.texi
manual/charset.texi
manual/ctype.texi
manual/filesys.texi
manual/install.texi
manual/locale.texi
manual/memory.texi
manual/resource.texi
manual/startup.texi
manual/stdio.texi
manual/time.texi

index fa1c8b0..9102cd0 100644 (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.
index dafb406..9b8aca3 100644 (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);
index c6d8607..4f4451d 100644 (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].
 
index 6279471..47e59cf 100644 (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
index b744697..090d49f 100644 (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 */
index c40ba3c..0f2e6fe 100644 (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).
 
index 4fb58d1..2ebde7d 100644 (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
index 593f7f3..1117363 100644 (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
index a74f32d..0f12746 100644 (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
index afadcdb..a8f003d 100644 (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.
index f477ac8..e3e0563 100644 (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;
 
index e64dc8d..c840e70 100644 (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
 
index 3beb939..9d2e17b 100644 (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
index 35ddbc4..5ccb78b 100644 (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;
 
index 05ecab0..39fd4fb 100644 (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
index 9744982..645c876 100644 (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