xenomai-git-requ...@gna.org wrote: > diff --git a/src/skins/common/current.c b/src/skins/common/current.c > index 7277189..5d418a4 100644 > --- a/src/skins/common/current.c > +++ b/src/skins/common/current.c > @@ -29,8 +29,6 @@ static inline unsigned long *create_current_mode(void) > > static inline void free_current_mode(unsigned long *mode) { } > > -#define XENO_MODE_LEAK_WARNING "" > - > #else /* !HAVE___THREAD */ > > pthread_key_t xeno_current_key; > @@ -56,8 +54,9 @@ static inline void free_current_mode(unsigned long *mode) > } > > #define XENO_MODE_LEAK_WARNING \ > - " To reduce the probality, we leak a few bytes of heap " \ > - "per thread.\n" > + "Xenomai: WARNING, this version of Xenomai kernel is anterior to" \ > + " 2.5.2.\nIn order to avoid getting memory corruption, we leak 4" \ > + " bytes per thread.\nUpgrade is recommended.\n" > > #endif /* !HAVE___THREAD */ > > @@ -70,20 +69,18 @@ static void cleanup_current_mode(void *key) > > err = XENOMAI_SYSCALL0(__xn_sys_drop_u_mode); > > - if (err) { > + if (!err) > + free_current_mode(mode); > +#ifdef XENO_MODE_LEAK_WARNING > + else { > static int warned; > > if (!warned) { > warned = 1; > - fprintf(stderr, > - "\nXenomai: WARNING, this Xenomai kernel can " > - "cause spurious application\n" > - " crashes on thread termination. " > - "Upgrade is highly recommended.\n%s\n", > - XENO_MODE_LEAK_WARNING); > + fprintf(stderr, XENO_MODE_LEAK_WARNING); > } > - } else > - free_current_mode(mode); > + } > +#endif /* XENO_MODE_LEAK_WARNING */ > } > > static void init_current_keys(void) >
This no longer issues a warning for the __thread case. We might have been lucky that there was no issue in practice, but are we sure? That was my motivation to warn about both scenarios. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core