From: Date: August 21 2008 1:23pm Subject: bzr commit into mysql-6.0-falcon branch (olav:2792) Bug#38766 List-Archive: http://lists.mysql.com/commits/52198 X-Bug: 38766 Message-Id: <20080821112352.15379.qmail@khepri11> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #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