On Fri, Sep 14, 2018 at 5:25 PM, Antoon Pardon <antoon.par...@vub.be> wrote: > On 13-09-18 14:29, Chris Angelico wrote: >> "Preferred" doesn't exclude the possibility that alternatives are >> needed, though. For example, good luck making decimal.Decimal contexts >> work correctly without the help of thread-locals - there MIGHT be a >> way to do it, but even if there is, it sure won't be pretty. > > Can you elaborate on that. Suppose I have two threads, one in which I need > a precision of 3 and the other in which I need a precision of 7. In what > circumstances is it needed to use threads-locals to accomplish this and > how do I accomplish this? > > If I want my decimal code be usable with threads, how should I write it?
Let's say both of those threads call the same function, which does this: def f(x, y): return x * 3 + y / 4 You can't pass a context as a parameter, so you have to set the context externally. Which is done thus: https://docs.python.org/3/library/decimal.html#decimal.setcontext Note that this sets it *for the current thread*. ChrisA -- https://mail.python.org/mailman/listinfo/python-list