2004-04-17  Jakub Jelinek  <jakub@redhat.com>

	* rt/Makefile (tests): Add tst-mqueue8.
	* rt/tst-mqueue8.c: New test.

	* sysdeps/unix/sysv/linux/s390/Makefile (librt-routines): Add
	rt-sysdep.
	* sysdeps/unix/sysv/linux/s390/rt-sysdep.S: New file.
This commit is contained in:
Ulrich Drepper
2004-04-18 02:37:56 +00:00
parent f532641db7
commit 1683daeb27
19 changed files with 365 additions and 21 deletions
+15
View File
@@ -1,3 +1,18 @@
2004-04-17 Jakub Jelinek <jakub@redhat.com>
* sysdeps/x86_64/tls.h [!__ASSEMBLER__]: Include tcb-offsets.h.
* sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
return it_value { 0, 0 }.
* sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
like SIGEV_SIGNAL.
* sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
assertion for SIGEV_NONE.
(thread_attr_compare): Compare all attributes, not just a partial
subset.
* sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
2004-04-17 Ulrich Drepper <drepper@redhat.com>
* semaphore.h (SEM_VALUE_MAX): Just use a plain number.
+1 -4
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 2000, 2003 Free Software Foundation, Inc.
/* Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -91,9 +91,6 @@ timer_create (clock_id, evp, timerid)
switch (__builtin_expect (newtimer->event.sigev_notify, SIGEV_SIGNAL))
{
case SIGEV_NONE:
/* This is a strange choice! */
break;
case SIGEV_SIGNAL:
/* We have a global thread for delivering timed signals.
If it is not running, try to start it up. */
+8 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 2000 Free Software Foundation, Inc.
/* Copyright (C) 2000, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -54,7 +54,13 @@ timer_gettime (timerid, value)
if (armed)
{
clock_gettime (clock, &now);
timespec_sub (&value->it_value, &expiry, &now);
if (timespec_compare (&now, &expiry) < 0)
timespec_sub (&value->it_value, &expiry, &now);
else
{
value->it_value.tv_sec = 0;
value->it_value.tv_nsec = 0;
}
}
else
{
@@ -1,5 +1,5 @@
/* Helper code for POSIX timer implementation on LinuxThreads.
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
@@ -318,7 +318,6 @@ thread_expire_timer (struct thread_node *self, struct timer_node *timer)
switch (__builtin_expect (timer->event.sigev_notify, SIGEV_SIGNAL))
{
case SIGEV_NONE:
assert (! "timer_create should never have created such a timer");
break;
case SIGEV_SIGNAL:
@@ -517,10 +516,15 @@ thread_attr_compare (const pthread_attr_t *left, const pthread_attr_t *right)
{
return (left->__detachstate == right->__detachstate
&& left->__schedpolicy == right->__schedpolicy
&& left->__guardsize == right->__guardsize
&& (left->__schedparam.sched_priority
== right->__schedparam.sched_priority)
&& left->__inheritsched == right->__inheritsched
&& left->__scope == right->__scope);
&& left->__scope == right->__scope
&& left->__stacksize == right->__stacksize
&& left->__stackaddr_set == right->__stackaddr_set
&& (left->__stackaddr_set
|| left->__stackaddr == right->__stackaddr));
}
@@ -23,6 +23,7 @@
#include <mqueue.h>
#include <pthread.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <sysdep.h>
#include <unistd.h>
+3
View File
@@ -41,6 +41,9 @@ typedef struct
void *self; /* Pointer to the thread descriptor. */
int multiple_threads;
} tcbhead_t;
#else /* __ASSEMBLER__ */
# include <tcb-offsets.h>
#endif