PDA

Просмотр полной версии : [11882]Fix rare freeze in MaNGOS::NearUsedPosDo


rsa
18.01.2012, 20:32
subj
https://github.com/mangosR2/mangos/commit/d39954f7437d3566f448e640d1da47d84502ced4
фриз редкий и проявляется на большой нагрузке, возможно только с mmap. но возможен и на обычном мангосе (причина - кривые вычисления с float точностью, иногда дают angle порядка 10**30 вместо 0)

PS не пора еще лавочку закрывать? тускло как-то...

virusav
18.01.2012, 20:44
Не пора, год только начался.:)

rsa
18.01.2012, 20:48
Не пора, год только начался.:)

через месяц вспомним, или через полгодика?

PS я не злопамятный. просто злой, и память хорошая (с).

schmoozerd
24.01.2012, 00:51
With some changes in 11882. Thank you!

Except I miss something due to too much drinking, the only possible place for problems could have been i_angle, which I corrected to be normalized.

If you don't agree, please tell in which combinations you see a possible fail :)

rsa
24.01.2012, 09:50
your normaization method in NearUsedPosDo more correct then my, but i think, normalization in GetAngle() still needed for other purposes (atan2 may returns broken value in some cases).

PS to zergtmn - хоть его-то не обвиняйте в рекламе R2, ладно?

schmoozerd
24.01.2012, 13:41
according to http://www.cplusplus.com/reference/clibrary/cmath/atan2/
atan2 returns a value in -Pi..Pi, hence the check done currently in GetAngle must return a value in 0..2Pi

rsa
24.01.2012, 13:52
problem not in atan2, but in casting from long double to float. 0.0f may be interpreted as float MAX in some (very rare) cases.