胡须linux教程,armlinux.diff

diff --git a/CMakeLists.txt b/CMakeLists.txt

index 2c8880a..af0d174 100644

--- a/CMakeLists.txt

+++ b/CMakeLists.txt

@@ -21,7 +21,7 @@ set(CXX_FLAGS

-Wpointer-arith

-Wshadow

-Wwrite-strings

- -march=native

+ -march=armv4

# -MMD

# -std=c++0x

-rdynamic

@@ -31,7 +31,7 @@ if(CMAKE_BUILD_BITS EQUAL 32)

endif()

string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}")

-set(CMAKE_CXX_COMPILER "g++")

+set(CMAKE_CXX_COMPILER "arm-g++")

#set(CMAKE_CXX_COMPILER "icpc")

set(CMAKE_CXX_FLAGS_DEBUG "-O0")

set(CMAKE_CXX_FLAGS_RELEASE "-O2 -finline-limit=1000 -DNDEBUG")

diff --git a/muduo/base/Atomic.h b/muduo/base/Atomic.h

index 3478da0..cc1dd45 100644

--- a/muduo/base/Atomic.h

+++ b/muduo/base/Atomic.h

@@ -8,6 +8,7 @@

#include

#include

+#include

namespace muduo

{

@@ -83,10 +84,88 @@ class AtomicIntegerT : boost::noncopyable

private:

volatile T value_;

};

+

+template

+class AtomicIntegerLock : boost::noncopyable

+{

+ public:

+ AtomicIntegerLock()

+ : value_(0)

+ {

+ }

+

+ // uncomment if you need copying and assignment

+ //

+ // AtomicIntegerT(const AtomicIntegerT& that)

+ // : value_(that.get())

+ // {}

+ //

+ // AtomicIntegerT& operator=(const AtomicIntegerT& that)

+ // {

+ // getAndSet(that.get());

+ // return *this;

+ // }

+

+ T get()

+ {

+ MutexLockGuard lock(mutex_);

+ return value_;

+ }

+

+ T getAndAdd(T x)

+ {

+ MutexLockGuard lock(mutex_);

+ T old = value_;

+ value_ += x;

+ return old;

+ }

+

+ T addAndGet(T x)

+ {

+ return getAndAdd(x) + x;

+ }

+

+ T incrementAndGet()

+ {

+ return addAndGet(1);

+ }

+

+ T decrementAndGet()

+ {

+ return addAndGet(-1);

+ }

+

+ void add(T x)

+ {

+ getAndAdd(x);

+ }

+

+ void increment()

+ {

+ incrementAndGet();

+ }

+

+ void decrement()

+ {

+ decrementAndGet();

+ }

+

+ T getAndSet(T newValue)

+ {

+ MutexLockGuard lock(mutex_);

+ T old = value_;

+ value_ = newValue;

+ return old;

+ }

+

+ private:

+ volatile T value_;

+ MutexLock mutex_;

+};

}

typedef detail::AtomicIntegerT AtomicInt32;

-typedef detail::AtomicIntegerT AtomicInt64;

+typedef detail::AtomicIntegerLock AtomicInt64;

}

#endif // MUDUO_BASE_ATOMIC_H

diff --git a/muduo/base/tests/CMakeLists.txt b/muduo/base/tests/CMakeLists.txt

index 2c3f1c4..73d90fd 100644

--- a/muduo/base/tests/CMakeLists.txt

+++ b/muduo/base/tests/CMakeLists.txt

@@ -2,7 +2,7 @@

target_link_libraries(asynclogging_test muduo_base)

add_executable(atomic_unittest Atomic_unittest.cc)

-# target_link_libraries(atomic_unittest muduo_base)

+target_link_libraries(atomic_unittest muduo_base)

add_executable(blockingqueue_test BlockingQueue_test.cc)

target_link_libraries(blockingqueue_test muduo_base)

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值