mirror of
https://github.com/mutouyun/cpp-ipc.git
synced 2025-12-06 16:56:45 +08:00
fix compiling errors
This commit is contained in:
parent
0a17257388
commit
1b047bd975
@ -33,6 +33,10 @@ struct alignas(std::max_align_t) elem_array_head {
|
|||||||
return cc_.load(std::memory_order_acquire);
|
return cc_.load(std::memory_order_acquire);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u2_t cursor(void) const {
|
||||||
|
return wt_.load(std::memory_order_acquire);
|
||||||
|
}
|
||||||
|
|
||||||
auto acquire(void) {
|
auto acquire(void) {
|
||||||
while (lc_.exchange(1, std::memory_order_acquire)) {
|
while (lc_.exchange(1, std::memory_order_acquire)) {
|
||||||
std::this_thread::yield();
|
std::this_thread::yield();
|
||||||
@ -62,6 +66,9 @@ public:
|
|||||||
using base_t = elem_array_head<BaseIntSize>;
|
using base_t = elem_array_head<BaseIntSize>;
|
||||||
using head_t = elem_head;
|
using head_t = elem_head;
|
||||||
|
|
||||||
|
using typename base_t::u1_t;
|
||||||
|
using typename base_t::u2_t;
|
||||||
|
|
||||||
enum : std::size_t {
|
enum : std::size_t {
|
||||||
head_size = elem_array_head_size<BaseIntSize>,
|
head_size = elem_array_head_size<BaseIntSize>,
|
||||||
data_size = DataSize,
|
data_size = DataSize,
|
||||||
@ -95,6 +102,7 @@ public:
|
|||||||
using base_t::connect;
|
using base_t::connect;
|
||||||
using base_t::disconnect;
|
using base_t::disconnect;
|
||||||
using base_t::conn_count;
|
using base_t::conn_count;
|
||||||
|
using base_t::cursor;
|
||||||
|
|
||||||
void* acquire(void) {
|
void* acquire(void) {
|
||||||
elem_t* el = elem(base_t::acquire());
|
elem_t* el = elem(base_t::acquire());
|
||||||
@ -116,12 +124,8 @@ public:
|
|||||||
base_t::commit();
|
base_t::commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
u2_t cursor(void) const {
|
|
||||||
return wt_.load(std::memory_order_acquire);
|
|
||||||
}
|
|
||||||
|
|
||||||
void* take(u2_t cursor) {
|
void* take(u2_t cursor) {
|
||||||
return elem(index_of(cursor))->data_;
|
return elem(base_t::index_of(cursor))->data_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void put(void* ptr) {
|
void put(void* ptr) {
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
array_t* elems_ = nullptr;
|
array_t* elems_ = nullptr;
|
||||||
typename std::result_of<decltype(&array_t::cursor)(array_t)>::type cursor_ = 0;
|
typename array_t::u2_t cursor_ = 0;
|
||||||
bool connected_ = false;
|
bool connected_ = false;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -144,7 +144,7 @@ struct test_cq;
|
|||||||
template <std::size_t D>
|
template <std::size_t D>
|
||||||
struct test_cq<ipc::circ::elem_array<D>> {
|
struct test_cq<ipc::circ::elem_array<D>> {
|
||||||
using ca_t = ipc::circ::elem_array<D>;
|
using ca_t = ipc::circ::elem_array<D>;
|
||||||
using cn_t = typename std::result_of<decltype(&ca_t::cursor)(ca_t)>::type;
|
using cn_t = typename ca_t::u2_t;
|
||||||
|
|
||||||
ca_t* ca_;
|
ca_t* ca_;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user