[PATCH 02/25] pthread_setaffinity (Linux variant): Rewrite to use VLA instead of alloca
Andreas Schwab
schwab@suse.de
Mon Mar 16 14:49:00 GMT 2015
Florian Weimer <fweimer@redhat.com> writes:
> @@ -27,26 +26,29 @@
> size_t __kernel_cpumask_size attribute_hidden;
>
>
> -/* Determine the current affinity. As a side affect we learn
> - about the size of the cpumask_t in the kernel. */
> +/* Determine the size of cpumask_t in the kernel. */
> int
> __determine_cpumask_size (pid_t tid)
> {
> - INTERNAL_SYSCALL_DECL (err);
> - int res;
> -
> size_t psize = 128;
> - void *p = alloca (psize);
> -
> - while (res = INTERNAL_SYSCALL (sched_getaffinity, err, 3, tid, psize, p),
> - INTERNAL_SYSCALL_ERROR_P (res, err)
> - && INTERNAL_SYSCALL_ERRNO (res, err) == EINVAL)
> - p = extend_alloca (p, psize, 2 * psize);
> + int res;
>
> - if (res == 0 || INTERNAL_SYSCALL_ERROR_P (res, err))
> - return INTERNAL_SYSCALL_ERRNO (res, err);
> + for (psize = 128; ; psize *= 2)
The assignment is redundant.
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
More information about the Libc-alpha
mailing list