[ 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)