Gilles Chanteperdrix wrote:
> [email protected] wrote:
>>>> int main( int arc, char *argv[] ) { int i;
>>>>
>>>> rt_print_auto_init(1);
>>>>
>>>> rt_printf("--------------- TEST RT-PRINTF  1 ------------\n");
>>>>
>>>> sleep(1);
>>>>
>>>> daemon(0,0);
>>>>
>>>> rt_print_auto_init(1);
>> Ok, understood, at least for the scenario where the rt_print feature
>> is initialised befor the fork/daemon call. What I don't understand
>> is, why it does not work if the rt_print feature is initialised after
>> the fork / daemon.
> 
> From the way I understand your code, you never tried to initialize the
> rt_print feature only after the fork, your code initializes it both
> before and after.
> 

There are two initializations: The base init done via __rt_print_init on
library loading and the one to be done per-thread via rt_print_init (or
on first rt_printf). That printer thread is initialized via the former
one. On fork, we do not need to re-run the full __rt_print_init
(variables and resources are cloned on fork), we just need to spawn
another printer thread.

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to