Thanks for the bug report. I have fixed this in my version, and the fix will be in the next release.

Technically, adding THREADLOCAL does not make it re-entrant, it just means you can call it in parallel. Re-entrant means that you can call it recursively even on the same thread. So, instead of using THREADLOCAL, I changed it so that the caller of that subroutine passes the saved state in, in which case the "static" keyword can be eliminated entirely.

Steven


On May 25, 2011, at 8:21 AM, Gert Wollny wrote:

Hello,

some of the optimizers in the luksan directory are not reentrant,
because the function luksan_ps1l01__ uses static variables that are not
thread-local.

See also this Gentoo-bug report:
https://bugs.gentoo.org/show_bug.cgi?id=368685

A patch adding the THREADLOCAL keyword is provided here:
https://bugs.gentoo.org/attachment.cgi?id=274599

Many thanks for proving nlopt,

best
Gert

_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss


_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss

Reply via email to