This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On 06/11/2019 07:11, Lukasz Majewski wrote:
>> diff --git a/nptl/thrd_sleep.c b/nptl/thrd_sleep.c
>> index 2e185dd748e..c865f815eea 100644
>> --- a/nptl/thrd_sleep.c
>> +++ b/nptl/thrd_sleep.c
>> @@ -17,23 +17,18 @@
>> <https://www.gnu.org/licenses/>. */
>>
>> #include <time.h>
>> -#include <sysdep-cancel.h>
>> -
>> -#include "thrd_priv.h"
>> +#include <errno.h>
>>
>> int
>> thrd_sleep (const struct timespec* time_point, struct timespec*
>> remaining) {
>> - INTERNAL_SYSCALL_DECL (err);
>> - int ret = INTERNAL_SYSCALL_CANCEL (nanosleep, err, time_point,
>> remaining);
>> - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
>> - {
>> - /* C11 states thrd_sleep function returns -1 if it has been
>> interrupted
>> - by a signal, or a negative value if it fails. */
>> - ret = INTERNAL_SYSCALL_ERRNO (ret, err);
>> - if (ret == EINTR)
>> - return -1;
>> - return -2;
>> - }
>> - return 0;
>> + int ret = __clock_nanosleep (CLOCK_REALTIME, 0, time_point,
>> remaining);
>
> Maybe this is a bit off topic (generic question to 64 bit time support)
> - but I'm wondering if we shall not use __clock_nanosleep_time64 here
> just from the outset?
>
> With using __clock_nanosleep() as the internal function, the
> architectures with __TIMESIZE != 64 (e.g. ARM32 bit) will not benefit
> from having internal glibc support for 64 bit time representation (as
> their __clock_nanosleep version uses 32 bit to represent time).
>
> Of course we can stick to __clock_nanosleep, but then those functions
> would need to be aliased or (better) renamed in the code before Y2038.
>
> The same situation is with e.g. internal usage of __clock_settime.
>
The C11 thrd_sleep would require a time64 support using the same
strategy as the other symbols, i.e, adding a thrd_sleep_time64 for
time64 enabled architectures and refactor thrd_sleep in terms of
thrd_sleep_time64.
Attachment:
signature.asc
Description: OpenPGP digital signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |