Adds sys_mkdir() and sys_rmdir() (XCC)
[akaros.git] / tests / msr_nice_while.c
1 /* tests/msr_dumb_while.c
2  *
3  * This requests the max_vcores in the system, then just while loops in a
4  * userthread.  The pthread code will nicely yield if it detects an incoming
5  * preemption. */
6
7 #include <ros/notification.h>
8 #include <stdlib.h>
9 #include <vcore.h>
10 #include <pthread.h>
11 #include <rassert.h>
12
13 void *while_thread(void *arg)
14 {
15         while (1);
16 }
17
18 int main(int argc, char** argv)
19 {
20         pthread_t *my_threads = malloc(sizeof(pthread_t) * max_vcores());
21
22         /* set up to receive the PREEMPT_PENDING notif */
23         struct notif_method *nm;
24         nm = &__procdata.notif_methods[NE_PREEMPT_PENDING];
25         nm->flags |= NOTIF_WANTED | NOTIF_IPI;
26
27         /* actually only need one less, since the _S will be pthread 0 */
28         for (int i = 0; i < max_vcores() - 1; i++)
29                 pthread_create(&my_threads[i], NULL, &while_thread, NULL);
30
31         assert(num_vcores() == max_vcores());
32         while (1);
33
34         /* should never make it here */
35         return -1;
36 }