Module: xenomai-head Branch: master Commit: 1d8d0468a4ae98a261059182321bdf2509a4e1f9 URL: http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=1d8d0468a4ae98a261059182321bdf2509a4e1f9
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Thu Aug 25 21:46:50 2011 +0200 common: fix fork and rt_printf buffers again --- src/skins/common/rt_print.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/skins/common/rt_print.c b/src/skins/common/rt_print.c index ec10a21..cdd4ed3 100644 --- a/src/skins/common/rt_print.c +++ b/src/skins/common/rt_print.c @@ -468,7 +468,7 @@ static void cleanup_buffer(struct print_buffer *buffer) old_bitmap = xnarch_atomic_get(&pool_bitmap[i]); - if ((old_bitmap & (1UL << j)) == 0) + if ((old_bitmap & (1UL << j))) return; do { @@ -614,15 +614,14 @@ static void forked_child_init(void) pthread_mutex_init(&buffer_lock, NULL); while (*pbuffer) { + if (*pbuffer == my_buffer) + pbuffer = &(*pbuffer)->next; #ifdef CONFIG_XENO_FASTSYNCH - if ((unsigned long)*pbuffer - pool_start < pool_len) { + else if ((unsigned long)*pbuffer - pool_start < pool_len) { cleanup_buffer(*pbuffer); pbuffer = &(*pbuffer)->next; - continue; } #endif /* CONFIG_XENO_FASTSYNCH */ - if (*pbuffer == my_buffer) - pbuffer = &(*pbuffer)->next; else cleanup_buffer(*pbuffer); } _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git