Skip to content

Commit be6f16f

Browse files
committed
revert some changes
1 parent 68590dd commit be6f16f

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

src/libipc/waiter_helper.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ struct waiter_helper {
3434
counter.waiting_.fetch_add(1, std::memory_order_release);
3535
flags.is_waiting_.store(true, std::memory_order_relaxed);
3636
auto finally = ipc::guard([&ctrl, &counter, &flags] {
37-
ctrl.get_lock(); // barrier
3837
for (auto curr_wait = counter.waiting_.load(std::memory_order_relaxed); curr_wait > 0;) {
3938
if (counter.waiting_.compare_exchange_weak(curr_wait, curr_wait - 1, std::memory_order_acq_rel)) {
4039
break;

test/test_ipc.cpp

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ using namespace ipc;
1818

1919
namespace {
2020

21-
constexpr int LoopCount = 10000;
22-
constexpr int MultiMax = 8;
21+
constexpr int LoopCount = 10000;
22+
constexpr int MultiMax = 8;
23+
constexpr int TestBuffMax = 65536;
2324

2425
struct msg_head {
2526
int id_;
@@ -28,7 +29,7 @@ struct msg_head {
2829
class rand_buf : public buffer {
2930
public:
3031
rand_buf() {
31-
int size = capo::random<>{sizeof(msg_head), 65536}();
32+
int size = capo::random<>{sizeof(msg_head), TestBuffMax}();
3233
*this = buffer(new char[size], size, [](void * p, std::size_t) {
3334
delete [] static_cast<char *>(p);
3435
});
@@ -98,6 +99,22 @@ class data_set {
9899
}
99100
} const data_set__;
100101

102+
#define IPC_ASSERT_TRUE(condition) \
103+
do { \
104+
bool check = !!(condition); \
105+
GTEST_TEST_BOOLEAN_(check, #condition, false, true, \
106+
GTEST_NONFATAL_FAILURE_); \
107+
if (!check) return; \
108+
} while (0)
109+
110+
#define IPC_ASSERT_FALSE(condition) \
111+
do { \
112+
bool check = !!(condition); \
113+
GTEST_TEST_BOOLEAN_(!check, #condition, true, false, \
114+
GTEST_NONFATAL_FAILURE_); \
115+
if (check) return; \
116+
} while (0)
117+
101118
template <relat Rp, relat Rc, trans Ts, typename Que = chan<Rp, Rc, Ts>>
102119
void test_sr(char const * name, int s_cnt, int r_cnt) {
103120
ipc_ut::sender().start(static_cast<std::size_t>(s_cnt));
@@ -109,10 +126,10 @@ void test_sr(char const * name, int s_cnt, int r_cnt) {
109126
for (int k = 0; k < s_cnt; ++k) {
110127
ipc_ut::sender() << [name, &sw, r_cnt, k] {
111128
Que que { name, ipc::sender };
112-
ASSERT_TRUE(que.wait_for_recv(r_cnt));
129+
IPC_ASSERT_TRUE(que.wait_for_recv(r_cnt));
113130
sw.start();
114131
for (int i = 0; i < (int)data_set__.get().size(); ++i) {
115-
ASSERT_TRUE(que.send(data_set__.get()[i]));
132+
IPC_ASSERT_TRUE(que.send(data_set__.get()[i]));
116133
}
117134
};
118135
}
@@ -122,25 +139,25 @@ void test_sr(char const * name, int s_cnt, int r_cnt) {
122139
Que que { name, ipc::receiver };
123140
for (;;) {
124141
rand_buf got { que.recv() };
125-
ASSERT_FALSE(got.empty());
142+
IPC_ASSERT_FALSE(got.empty());
126143
int i = got.get_id();
127144
if (i == -1) {
128145
return;
129146
}
130-
ASSERT_TRUE((i >= 0) && (i < (int)data_set__.get().size()));
147+
IPC_ASSERT_TRUE((i >= 0) && (i < (int)data_set__.get().size()));
131148
auto const &data_set = data_set__.get()[i];
132149
if (data_set != got) {
133150
printf("data_set__.get()[%d] != got, size = %zd/%zd\n",
134151
i, data_set.size(), got.size());
135-
ASSERT_TRUE(false);
152+
IPC_ASSERT_TRUE(false);
136153
}
137154
}
138155
};
139156
}
140157

141158
ipc_ut::sender().wait_for_done();
142159
Que que { name };
143-
ASSERT_TRUE(que.wait_for_recv(r_cnt));
160+
IPC_ASSERT_TRUE(que.wait_for_recv(r_cnt));
144161
for (int k = 0; k < r_cnt; ++k) {
145162
que.send(rand_buf{msg_head{-1}});
146163
}

0 commit comments

Comments
 (0)