From 43d4e95770b0519341153202c9a535aaa8e164c5 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期二, 01 六月 2021 14:22:20 +0800 Subject: [PATCH] refactor, remove useless code. --- src/robust.h | 33 ++++++++++----------------------- 1 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/robust.h b/src/robust.h index 1bbe8fc..62eb0b4 100644 --- a/src/robust.h +++ b/src/robust.h @@ -23,23 +23,11 @@ #include "log.h" #include <atomic> #include <chrono> -#include <memory> -#include <mutex> -#include <string> -#include <sys/file.h> -#include <sys/ipc.h> -#include <sys/sem.h> -#include <sys/stat.h> -#include <sys/types.h> -#include <thread> #include <unistd.h> namespace robust { - -using namespace std::chrono; -using namespace std::chrono_literals; - +/* template <unsigned PowerSize = 4, class Int = int64_t> class AtomicQueue { @@ -100,16 +88,13 @@ std::atomic<size_type> tail_; AData buf[capacity]; }; +//*/ -template <class Int> -class AtomicQueue<0, Int> +class AtomicQ63 { - typedef Int Data; - typedef std::atomic<Data> AData; - static_assert(sizeof(Data) == sizeof(AData)); - public: - AtomicQueue() { memset(this, 0, sizeof(*this)); } + typedef int64_t Data; + AtomicQ63() { memset(this, 0, sizeof(*this)); } bool push(const Data d, bool try_more = false) { auto cur = buf.load(); @@ -122,13 +107,15 @@ if (r) { d = Dec(cur); } return r; } - uint32_t head() const { return 0; } - uint32_t tail() const { return 0; } private: static inline bool Empty(const Data d) { return (d & 1) == 0; } // lowest bit 1 means data ok. static inline Data Enc(const Data d) { return (d << 1) | 1; } // lowest bit 1 means data ok. static inline Data Dec(const Data d) { return d >> 1; } // lowest bit 1 means data ok. + + typedef std::atomic<Data> AData; + static_assert(sizeof(Data) == sizeof(AData)); + AData buf; }; @@ -149,7 +136,7 @@ static int GetState(Data d) { return d & MaskBits(3); } static Data Encode(Data d, State st) { return (d << 3) | st; } static Data Decode(Data d) { return d >> 3; } - static void yield() { std::this_thread::sleep_for(10us); } + typedef std::chrono::steady_clock steady_clock; typedef steady_clock::duration Duration; Duration now() { return steady_clock::now().time_since_epoch(); } -- Gitblit v1.8.0