Carsten Spieß wrote: > Hello Philippe, > > > > You will have to remove the printf() from the low prio task for the > > nucleus watchdog to detect the runaway situation, otherwise, your task > > would be considered as being under the control of the Linux scheduler > > until it issues a blocking Xenomai syscall (which it never does), and > > therefore escape the watchdog detection. That's the particular case I > > was talking about. > Meanwhile i got my sample code running: > When removing the printf it works fine. > So for me it looks like a problem when a task is switched to secondary > domain. > Is there a way to force a thread to switch back to primary domain? > > Now i unsuccesfully tried to get a posix skin variant running. > (my real app is based on pthread) > Since i only can use signals to suspend a posix thread (correct me if > i'm wrong) i run in the same problem with the secondary domain. > > Is there a way to switch back to primary domain in posix skin?
In 99% of the cases, you do not need to do this, Xenomai switches threads to primary mode when they call a service which runs in primary mode. For the remaining cases, there is pthread_set_mode_np, see the API documentation at: http://www.xenomai.org/index.php/API_documentation To suspend threads, you can use pthread_cond_wait, sem_wait, pthread_mutex_lock or clock_nanosleep, depending on what you are trying to achieve. Signals are no good if you want to remain in primary mode, because they cause a switch to secondary mode. > Do i have a chance to do this with pthread or do i have to rewrite my > code using rt_task* calls? -- Gilles Chanteperdrix. _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
