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

Reply via email to