Hi Heinrich,

> > If a multithreaded application calls the same GLPK library function in
> > two threads at the same time, unexpected results may occur.
> > 
> > Gmtime, strerror and strtok use one global buffer each for all
> > threads.
> > 
> > They do not use thread local memory.
> > 
> 
> Probably you are right. (At least glibc 2.24 does not use tls.)
> 
> To resolve this issue I think to use wrappers for these functions (e.g.
> xstrtok) implemented on a per-thread basis.
> 

Please see a draft of glpk 4.62 here:
http://sourceforge.net/projects/noumenon/files/tmp/

I replaced all calls to gmtime, strerror, and strtok with corresponding
calls to wrappers xgmtime, xstrerr, and xstrtok (see env/stdc.c).

At the moment the wrappers just call corresponding standard functions.
Any idea how to better implement them?

Best regards,

Andrew Makhorin


_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to