Merge from trunk.
[bertos.git] / bertos / kern / signal_test.c
index 484c0338e1c2c783a77aa30407866b4b9a2fda08..3b5ff1cbf8d096a9820f9bac1f3921cba94caaed 100644 (file)
@@ -76,29 +76,43 @@ sigmask_t sig_to_slave;
  * These macros generate the code needed to create the test process functions.
  */
 #define PROC_TEST_SLAVE(index, signal) \
-static void NORETURN proc_signalTest##index(void) \
+static void proc_signalTest##index(void) \
 { \
-       for(;;) \
-       { \
-               kputs("> Slave [" #index "]: Wait signal [" #signal "]\n"); \
-               sig_wait(signal); \
-               kputs("> Slave [" #index "]: send signal [" #signal "]\n"); \
-               sig_signal(proc_currentUserData(), signal); \
-       } \
+       kputs("> Slave [" #index "]: Wait signal [" #signal "]\n"); \
+       sig_wait(signal); \
+       kputs("> Slave [" #index "]: send signal [" #signal "]\n"); \
+       sig_send(proc_currentUserData(), signal); \
 }
 
 #define MAIN_CHECK_SIGNAL(index, slave) \
        do { \
                kprintf("> Main: send signal [%d]\n", test_signal[index]); \
-               sig_signal(slave, test_signal[index]); \
+               sig_send(slave, test_signal[index]); \
                kprintf("> Main: wait signal [%d]\n", test_signal[index]); \
                sig_wait(test_signal[index]); \
                count++; \
        } while(0) \
 
-#define PROC_TEST_SLAVE_STACK(index) PROC_DEFINE_STACK(proc_signal_test##index##_stack, KERN_MINSTACKSIZE);
+#if CONFIG_KERN_HEAP
+
+#define PROC_TEST_SLAVE_INIT(index, master_process) proc_new(proc_signalTest##index, master_process, KERN_MINSTACKSIZE * 2, NULL)
+
+#else
+
+#define PROC_TEST_SLAVE_STACK(index) PROC_DEFINE_STACK(proc_signal_test##index##_stack, KERN_MINSTACKSIZE * 2);
 #define PROC_TEST_SLAVE_INIT(index, master_process) proc_new(proc_signalTest##index, master_process, sizeof(proc_signal_test##index##_stack), proc_signal_test##index##_stack)
 
+PROC_TEST_SLAVE_STACK(0)
+PROC_TEST_SLAVE_STACK(1)
+PROC_TEST_SLAVE_STACK(2)
+PROC_TEST_SLAVE_STACK(3)
+PROC_TEST_SLAVE_STACK(4)
+PROC_TEST_SLAVE_STACK(5)
+PROC_TEST_SLAVE_STACK(6)
+PROC_TEST_SLAVE_STACK(7)
+
+#endif
+
 // Generate the code for signal test.
 PROC_TEST_SLAVE(0, SIG_USER0)
 PROC_TEST_SLAVE(1, SIG_USER1)
@@ -109,15 +123,6 @@ PROC_TEST_SLAVE(5, SIG_SYSTEM5)
 PROC_TEST_SLAVE(6, SIG_SYSTEM6)
 PROC_TEST_SLAVE(7, SIG_SINGLE)
 
-PROC_TEST_SLAVE_STACK(0)
-PROC_TEST_SLAVE_STACK(1)
-PROC_TEST_SLAVE_STACK(2)
-PROC_TEST_SLAVE_STACK(3)
-PROC_TEST_SLAVE_STACK(4)
-PROC_TEST_SLAVE_STACK(5)
-PROC_TEST_SLAVE_STACK(6)
-PROC_TEST_SLAVE_STACK(7)
-
 /**
  * Run signal test
  */