提交 5e047028 编写于 作者: L lihui

[#1054]

上级 d9a3b9da
...@@ -71,20 +71,20 @@ int taosSetSockOpt(int socketfd, int level, int optname, void *optval, int optle ...@@ -71,20 +71,20 @@ int taosSetSockOpt(int socketfd, int level, int optname, void *optval, int optle
} }
// add // add
// char interlocked_add_fetch_8(char volatile* ptr, char val) {
// return _InterlockedExchangeAdd8(ptr, val) + val;
// }
// short interlocked_add_fetch_16(short volatile* ptr, short val) {
// return _InterlockedExchangeAdd16(ptr, val) + val;
// }
char interlocked_add_fetch_8(char volatile* ptr, char val) { char interlocked_add_fetch_8(char volatile* ptr, char val) {
#ifdef _TD_GO_DLL_
return __sync_fetch_and_add(ptr, val) + val; return __sync_fetch_and_add(ptr, val) + val;
#else
return _InterlockedExchangeAdd8(ptr, val) + val;
#endif
} }
short interlocked_add_fetch_16(short volatile* ptr, short val) { short interlocked_add_fetch_16(short volatile* ptr, short val) {
#ifdef _TD_GO_DLL_
return __sync_fetch_and_add(ptr, val) + val; return __sync_fetch_and_add(ptr, val) + val;
#else
return _InterlockedExchangeAdd16(ptr, val) + val;
#endif
} }
long interlocked_add_fetch_32(long volatile* ptr, long val) { long interlocked_add_fetch_32(long volatile* ptr, long val) {
...@@ -96,13 +96,15 @@ __int64 interlocked_add_fetch_64(__int64 volatile* ptr, __int64 val) { ...@@ -96,13 +96,15 @@ __int64 interlocked_add_fetch_64(__int64 volatile* ptr, __int64 val) {
} }
// and // and
// char interlocked_and_fetch_8(char volatile* ptr, char val) { #ifndef _TD_GO_DLL_
// return _InterlockedAnd8(ptr, val) & val; char interlocked_and_fetch_8(char volatile* ptr, char val) {
// } return _InterlockedAnd8(ptr, val) & val;
}
// short interlocked_and_fetch_16(short volatile* ptr, short val) { short interlocked_and_fetch_16(short volatile* ptr, short val) {
// return _InterlockedAnd16(ptr, val) & val; return _InterlockedAnd16(ptr, val) & val;
// } }
#endif
long interlocked_and_fetch_32(long volatile* ptr, long val) { long interlocked_and_fetch_32(long volatile* ptr, long val) {
return _InterlockedAnd(ptr, val) & val; return _InterlockedAnd(ptr, val) & val;
...@@ -136,14 +138,15 @@ __int64 interlocked_fetch_and_64(__int64 volatile* ptr, __int64 val) { ...@@ -136,14 +138,15 @@ __int64 interlocked_fetch_and_64(__int64 volatile* ptr, __int64 val) {
#endif #endif
// or // or
// char interlocked_or_fetch_8(char volatile* ptr, char val) { #ifndef _TD_GO_DLL_
// return _InterlockedOr8(ptr, val) | val; char interlocked_or_fetch_8(char volatile* ptr, char val) {
// } return _InterlockedOr8(ptr, val) | val;
}
// short interlocked_or_fetch_16(short volatile* ptr, short val) {
// return _InterlockedOr16(ptr, val) | val;
// }
short interlocked_or_fetch_16(short volatile* ptr, short val) {
return _InterlockedOr16(ptr, val) | val;
}
#endif
long interlocked_or_fetch_32(long volatile* ptr, long val) { long interlocked_or_fetch_32(long volatile* ptr, long val) {
return _InterlockedOr(ptr, val) | val; return _InterlockedOr(ptr, val) | val;
} }
...@@ -176,14 +179,15 @@ __int64 interlocked_fetch_or_64(__int64 volatile* ptr, __int64 val) { ...@@ -176,14 +179,15 @@ __int64 interlocked_fetch_or_64(__int64 volatile* ptr, __int64 val) {
#endif #endif
// xor // xor
// char interlocked_xor_fetch_8(char volatile* ptr, char val) { #ifndef _TD_GO_DLL_
// return _InterlockedXor8(ptr, val) ^ val; char interlocked_xor_fetch_8(char volatile* ptr, char val) {
// } return _InterlockedXor8(ptr, val) ^ val;
}
// short interlocked_xor_fetch_16(short volatile* ptr, short val) {
// return _InterlockedXor16(ptr, val) ^ val;
// }
short interlocked_xor_fetch_16(short volatile* ptr, short val) {
return _InterlockedXor16(ptr, val) ^ val;
}
#endif
long interlocked_xor_fetch_32(long volatile* ptr, long val) { long interlocked_xor_fetch_32(long volatile* ptr, long val) {
return _InterlockedXor(ptr, val) ^ val; return _InterlockedXor(ptr, val) ^ val;
} }
...@@ -410,6 +414,7 @@ char *strndup(const char *s, size_t n) { ...@@ -410,6 +414,7 @@ char *strndup(const char *s, size_t n) {
void taosSetCoreDump() {} void taosSetCoreDump() {}
#ifdef _TD_GO_DLL_
int64_t str2int64(char *str) { int64_t str2int64(char *str) {
char *endptr = NULL; char *endptr = NULL;
return strtoll(str, &endptr, 10); return strtoll(str, &endptr, 10);
...@@ -419,3 +424,4 @@ uint64_t htonll(uint64_t val) ...@@ -419,3 +424,4 @@ uint64_t htonll(uint64_t val)
{ {
return (((uint64_t) htonl(val)) << 32) + htonl(val >> 32); return (((uint64_t) htonl(val)) << 32) + htonl(val >> 32);
} }
#endif
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册