Kent Borg wrote: > Thanks for the news that gdb should just work. > > Now I am wondering about signals. I want to be able to send a regular > Linux signal to a userland realtime process. Do I use the regular > signal() to install a signal handler? When would I use > rt_task_catch() and rt_task_notify()? Those function are - in contrast to what to doc states - not yet available in userspace. So far Xenomai is lacking the infrastructure to deliver hard-RT signals to userspace threads, only the Linux signals are passed as usual. > > What about multiple threads? I have 2 threads running. It seems that > the thread that called signal() is the one landing in the handler > routine. I would like to set some flags for the second thread to see, > so it can cleanup things before quiting, but it seems that my second > thread isn't running after I send the signal. I also think I am > corrupting something, because if I set up a loop that launches and > kills my program, my machine freezes up after a dozen cycles. I > commented out most of my guts and it still freezes up. Signals in multithreaded applications are tricky in general, even without Xenomai. You may try to play with pthread_kill and pthread_sigmask to control which thread receives a specific signal. When the signal receiver is a Xenomai thread, the usual things happen: blocking on RT-resources is cleared, the thread is migrated to secondary mode, and the signal handler is invoked as one expects. Jan