MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / FirstInFirstOut

Function FirstInFirstOut

test/cpp/fluid/reader/reader_blocking_queue_test.cc:28–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26}
27
28void FirstInFirstOut(size_t queue_cap,
29 size_t elem_num,
30 size_t send_time_gap,
31 size_t receive_time_gap) {
32 BlockingQueue<size_t> q(queue_cap);
33 std::thread sender([&]() {
34 for (size_t i = 0; i < elem_num; ++i) {
35 std::this_thread::sleep_for(std::chrono::milliseconds(send_time_gap));
36 EXPECT_TRUE(q.Send(i));
37 }
38 q.Close();
39 });
40 size_t count = 0;
41 while (true) {
42 std::this_thread::sleep_for(std::chrono::milliseconds(receive_time_gap));
43 size_t elem = 0;
44 if (!q.Receive(&elem)) {
45 break;
46 }
47 EXPECT_EQ(elem, count++);
48 }
49 sender.join();
50 EXPECT_EQ(count, elem_num);
51 EXPECT_TRUE(q.IsClosed());
52}
53
54TEST(BlockingQueue, FirstInFirstOutTest) {
55 FirstInFirstOut(2, 5, 2, 50);

Callers 1

TESTFunction · 0.85

Calls 5

ReceiveMethod · 0.80
SendMethod · 0.45
CloseMethod · 0.45
joinMethod · 0.45
IsClosedMethod · 0.45

Tested by

no test coverage detected