Only set the thread's status to WaitSys if we're actually waiting for
a proxyLWP to complete a syscall.
Update sigaltstack test to use mmap to allocate the stack.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2016 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/memcheck/tests/sigaltstack.c b/memcheck/tests/sigaltstack.c
index 8f31e68..c4c6549 100644
--- a/memcheck/tests/sigaltstack.c
+++ b/memcheck/tests/sigaltstack.c
@@ -3,20 +3,22 @@
#include <stdio.h>
#include <malloc.h>
#include <signal.h>
+#include <sys/mman.h>
void sig_handler(int sig){
int var;
fprintf(stderr, "caught signal, local var is on %p\n", &var);
}
-
int main(int argv, char** argc) {
int res, i;
stack_t sigstk;
struct sigaction act;
- sigstk.ss_sp = (char *)malloc(SIGSTKSZ);
+ static const int size = SIGSTKSZ;
+ char *stk = (char *)mmap(0, size, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
+ sigstk.ss_sp = stk;
- sigstk.ss_size = SIGSTKSZ;
+ sigstk.ss_size = size;
sigstk.ss_flags = 0;
fprintf(stderr, "calling sigaltstack, stack base is %p\n", sigstk.ss_sp);
if (sigaltstack(&sigstk,0)<0) perror("sigaltstack");