summaryrefslogtreecommitdiffstats
path: root/src/libthread/test/tcontext.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libthread/test/tcontext.c')
-rw-r--r--src/libthread/test/tcontext.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libthread/test/tcontext.c b/src/libthread/test/tcontext.c
new file mode 100644
index 00000000..fa58e063
--- /dev/null
+++ b/src/libthread/test/tcontext.c
@@ -0,0 +1,27 @@
+#include "../threadimpl.h"
+#undef exits
+
+
+ucontext_t c0, c1;
+char stack[65536];
+
+void
+go(void *v)
+{
+ print("hello, world\n");
+ setcontext(&c0);
+}
+
+void
+main(void)
+{
+// print("in main\n");
+ getcontext(&c1);
+ c1.uc_stack.ss_sp = stack;
+ c1.uc_stack.ss_size = sizeof stack;
+ makecontext(&c1, go, 1, 0);
+ if(getcontext(&c0) == 0)
+ setcontext(&c1);
+ print("back in main\n");
+ exits(0);
+}