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
