You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are modules like power series (p64_powserx.S) that are using static storage (STS/LDS) to temporarily store state.
This means that fp64lib cannot be used in multi-threaded programs, because one thread may override data of some other thread. There are more functions that are not re-entrant like in: fp64_asinx.S, fp64_sinx.S, fp64_tostring.S, fp64_strtod.S.
Modules fp64_stackB.S and fp64_stackC.S are using the same anti-pattern and are used by many other modules.
The text was updated successfully, but these errors were encountered:
The code being not threadsafe was a deliberately taken design decision, see https://fp64lib.org/documentation/fp64lib-design-principles/, topic #7 and #9. The reason was to have the smallest possible footprint, so that the complete library can be used on an Arduino Uno leaving enough memory for a typical application like a calculator or a GPS tracker.
There are modules like power series (
p64_powserx.S
) that are using static storage (STS
/LDS
) to temporarily store state.This means that fp64lib cannot be used in multi-threaded programs, because one thread may override data of some other thread. There are more functions that are not re-entrant like in:
fp64_asinx.S
,fp64_sinx.S
,fp64_tostring.S
,fp64_strtod.S
.Modules
fp64_stackB.S
andfp64_stackC.S
are using the same anti-pattern and are used by many other modules.The text was updated successfully, but these errors were encountered: