summaryrefslogtreecommitdiff
path: root/boost/thread/win32/thread_primitives.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/thread/win32/thread_primitives.hpp')
-rw-r--r--boost/thread/win32/thread_primitives.hpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/boost/thread/win32/thread_primitives.hpp b/boost/thread/win32/thread_primitives.hpp
index 0166f37d36..294e42ee9b 100644
--- a/boost/thread/win32/thread_primitives.hpp
+++ b/boost/thread/win32/thread_primitives.hpp
@@ -341,22 +341,42 @@ namespace boost
{
inline bool interlocked_bit_test_and_set(long* x,long bit)
{
+#if 0
__asm {
mov eax,bit;
mov edx,x;
lock bts [edx],eax;
setc al;
};
+#else
+ bool ret;
+ __asm {
+ mov eax,bit; mov edx,x; lock bts [edx],eax; setc al; mov ret, al
+ };
+ return ret;
+
+#endif
}
inline bool interlocked_bit_test_and_reset(long* x,long bit)
{
+#if 0
__asm {
mov eax,bit;
mov edx,x;
lock btr [edx],eax;
setc al;
};
+#else
+
+
+ bool ret;
+ __asm {
+ mov eax,bit; mov edx,x; lock btr [edx],eax; setc al; mov ret, al
+ };
+ return ret;
+
+#endif
}
}