[
https://issues.apache.org/jira/browse/ZOOKEEPER-1635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13823696#comment-13823696
]
Joe Gamache commented on ZOOKEEPER-1635:
----------------------------------------
As for why it matters, read
here:
http://mail-archives.apache.org/mod_mbox/zookeeper-user/201307.mbox/%3CCANLc_9LTYw7Q2Zte1vXdJMG_VTuXXK1Un2kvtny1LY=ah3k...@mail.gmail.com%3E
and here: http://osdir.com/ml/java-hadoop-zookeeper-user/2010-03/msg00116.html
So for some people when the Admin Guide says it is not production ready there
is understandable recalcitrance to usage in a production mode...
> Support x64 architecture for Windows
> ------------------------------------
>
> Key: ZOOKEEPER-1635
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1635
> Project: ZooKeeper
> Issue Type: Improvement
> Environment: Windows x64 systems.
> Reporter: Tomas Gutierrez
> Fix For: 3.5.0
>
>
> x64 target does not support _asm inline (See:
> http://msdn.microsoft.com/en-us/library/4ks26t93(v=vs.80).aspx)
> The proposal is to use native windows function which still valid for i386 and
> x64 architecture.
> In order to avoid any potential break, a compilation directive has been
> added. But, the best should be the removal of the asm part.
> -----------
> sample code
> -----------
> int32_t fetch_and_add(volatile int32_t* operand, int incr)
> {
> #ifndef WIN32
> int32_t result;
> asm __volatile__(
> "lock xaddl %0,%1\n"
> : "=r"(result), "=m"(*(int *)operand)
> : "0"(incr)
> : "memory");
> return result;
> #else
> #ifdef WIN32_NOASM
> InterlockedExchangeAdd(operand, incr);
> return *operand;
> #else
> volatile int32_t result;
> _asm
> {
> mov eax, operand; //eax = v;
> mov ebx, incr; // ebx = i;
> mov ecx, 0x0; // ecx = 0;
> lock xadd dword ptr [eax], ecx;
> lock xadd dword ptr [eax], ebx;
> mov result, ecx; // result = ebx;
> }
> return result;*/
> #endif
> #endif
> }
--
This message was sent by Atlassian JIRA
(v6.1#6144)