#At file:///home/os136802/mysql/develop/repo/falcon-sparc/
2792 Olav Sandstaa 2008-08-21
Fix for Bug#38766 Falcon hangs during start-up if compiled for 64 bit SPARC
Wrong CompareAndChange routine was used for in interlockedAdd. Replaced routine for
exchanging
pointers with routine for exchanging integer values. This problem resultet in errors
on big-endian 64 bit machines.
modified:
storage/falcon/Interlock.h
per-file messages:
storage/falcon/Interlock.h
Use the correct COMPARE_EXCHANGE routine for CompareAndSwap of integer types in
interlockedAdd.
=== modified file 'storage/falcon/Interlock.h'
=== modified file 'storage/falcon/Interlock.h'
--- a/storage/falcon/Interlock.h 2008-07-10 09:27:51 +0000
+++ b/storage/falcon/Interlock.h 2008-08-21 11:23:44 +0000
@@ -396,7 +396,7 @@
{
INTERLOCK_TYPE current= *addend;
INTERLOCK_TYPE ret= current + value;
- if (COMPARE_EXCHANGE_POINTER(addend, current, ret))
+ if (COMPARE_EXCHANGE(addend, current, ret))
return ret;
}
#endif
| Thread |
|---|
| • bzr commit into mysql-6.0-falcon branch (olav:2792) Bug#38766 | Olav Sandstaa | 21 Aug |