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
