The output will always come from the same thread so the output should always be the same?! L4_THREAD_EX_REGS_RAISE_EXCEPTION is in effect once, L4_THREAD_EX_REGS_ALIEN is a permanent state of the thread. If you do not set it in a following exregs call it's cleared again. If you do a trigger-exception, you get an exception IPC, if you do it again, you get the next. But exception IPC is also about sending a reply, so you need to reply to the receiving IPC to allow the thread to continue.
L4_THREAD_EX_REGS_RAISE_EXCEPTION flag needs to bet set every time. But L4_THREAD_EX_REGS_ALIEN doesn't need. My test program could run as what i want to do. But what is the difference between L4_THREAD_EX_REGS_ALIEN and L4_THREAD_EX_REGS_RAISE_EXCEPTION|L4_THREAD_EX_REGS_ALIEN? In the L4Linux i found you use L4_THREAD_EX_REGS_RAISE_EXCEPTION| L4_THREAD_EX_REGS_ALIEN but not only L4_THREAD_EX_REGS_ALIEN? What considerations do you have? Thanks a lot. cheng guanghui