is stdlib/tst-setcontext7 a bad test?
Szabolcs Nagy
szabolcs.nagy@arm.com
Fri Mar 27 09:59:14 GMT 2020
i'm planing to change swapcontext on aarch64 and i see
FAIL: stdlib/tst-setcontext7
that test case seems wrong to me, a simplified version is
#include <ucontext.h>
#include <stdio.h>
ucontext_t uc[2];
volatile int count = 0;
int main ()
{
getcontext (uc+0);
printf ("%d\n", count);
if (count)
setcontext (uc+1);
count++;
swapcontext (uc+1, uc+0);
printf ("done\n");
return 0;
}
this seems to work today and prints
0
1
done
but i don't think we can guarantee that after a
swapcontext to a getcontext on the same stack frame
resuming the context works: if swapcontext uses the
stack (which is what i plan to do) then that stack
will be corrupted.
does glibc plan to support this usage? i.e. should
i ensure swapcontext does not use the stack? (and
should gcc ensure no stack is used in the example
between getcontext and swapcontext?)
More information about the Libc-alpha
mailing list