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

Reply via email to