Fair points, I was also thinking maybe `rounding_mode` should return yield results instead of the current rounding mode because when you are temporarily changing it getting back the current mode isn't really that useful but getting back the results of a calculation would be.

What would be the right way to make it thread safe?