+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.
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)
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;
}
printf ("%04d: last serial thread %lu terminating process\n",
++linecount, (unsigned long) self);
funlockfile (stdout);
- exit (0);
+ return;
}
pthread_exit(NULL);
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].
% 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"
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
@smallexample
-...
+@dots{}
case ARGP_KEY_ARG:
if (@var{state}->arg_num == 0)
/* First argument */
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
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).
@smallexample
@{
int c;
- ...
+ @dots{}
while ((c = getc (fp)) < 0)
- ...
+ @dots{}
@}
@end smallexample
@smallexample
@{
wint_t c;
- ...
+ @dots{}
while ((c = wgetc (fp)) != WEOF)
- ...
+ @dots{}
@}
@end smallexample
while (! feof (fp))
@{
fread (&buf[len], 1, MB_CUR_MAX - len, fp);
- /* @r{... process} buf */
+ /* @r{@dots{} process} buf */
len -= used;
@}
@}
mbstate_t state;
memset (&state, '\0', sizeof (state));
/* @r{from now on @var{state} can be used.} */
- ...
+ @dots{}
@}
@end smallexample
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 *srcp = empty;
wcsrtombs (outbuf, &srcp, outbuflen, &state);
@}
- ...
+ @dots{}
@}
@end smallexample
solution.
@smallexample
- ...
+ @dots{}
if (len < MB_CUR_LEN)
@{
mbstate_t temp_state;
return NULL;
@}
@}
- ...
+ @dots{}
@end smallexample
Here we perform the conversion that might overflow the buffer so that
if (!data->__internal_use
&& data->__invocation_counter == 0)
/* @r{Emit prolog.} */
- ...
+ @dots{}
@end smallexample
This element must never be modified.
@{
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
return isalpha (c);
if (strcmp (class, "cntrl") == 0)
return iscntrl (c);
- ...
+ @dots{}
return 0;
@}
@end smallexample
@} u;
if (readdir_r (dir, &u.d, &res) == 0)
- ...
+ @dots{}
@end smallexample
@end deftypefun
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
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.
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,
@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.
This function would normally be used like this:
@smallexample
- ...
+ @dots{}
/* @r{Use a safe default.} */
_Bool doit = false;
>call mcheck(0)
>continue
>end
-(gdb) ...
+(gdb) @dots{}
@end smallexample
This will however only work if no initialization function of any object
main ()
@{
- ...
+ @dots{}
@}
@end smallexample
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,
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
#include <sys/syscall.h>
#include <errno.h>
-...
+@dots{}
int rc;
#include <sys/stat.h>
#include <errno.h>
-...
+@dots{}
int rc;
@smallexample
FILE *fp;
@{
- ...
+ @dots{}
flockfile (fp);
fputs ("This is test number ", fp);
fprintf (fp, "%d\n", test);
@smallexample
#define myprintf(a, b, c, d, e, rest...) \
- printf (mytemplate , ## rest...)
+ printf (mytemplate , ## rest)
@end smallexample
@noindent
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},
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
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