Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(947)

Unified Diff: mojo/edk/system/data_pipe_impl_unittest.cc

Issue 2084593005: Rationalize AddAwakable...() and RemoveAwakable...() methods. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: doh Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/edk/system/data_pipe_consumer_dispatcher.cc ('k') | mojo/edk/system/data_pipe_producer_dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/edk/system/data_pipe_impl_unittest.cc
diff --git a/mojo/edk/system/data_pipe_impl_unittest.cc b/mojo/edk/system/data_pipe_impl_unittest.cc
index a7105c07f0ee52ac4493081a15397f081b3cf1cb..3f783badd4219325fe2baae00a3ae585618dadd3 100644
--- a/mojo/edk/system/data_pipe_impl_unittest.cc
+++ b/mojo/edk/system/data_pipe_impl_unittest.cc
@@ -140,16 +140,19 @@ class DataPipeImplTest : public testing::Test {
return dpp()->ProducerEndWriteData(num_bytes_written);
}
MojoResult ProducerAddAwakable(Awakable* awakable,
- MojoHandleSignals signals,
- bool force,
uint64_t context,
+ bool force,
+ MojoHandleSignals signals,
HandleSignalsState* signals_state) {
- return dpp()->ProducerAddAwakable(awakable, signals, force, context,
+ return dpp()->ProducerAddAwakable(awakable, context, force, signals,
signals_state);
}
- void ProducerRemoveAwakable(Awakable* awakable,
+ void ProducerRemoveAwakable(bool match_context,
+ Awakable* awakable,
+ uint64_t context,
HandleSignalsState* signals_state) {
- return dpp()->ProducerRemoveAwakable(awakable, signals_state);
+ return dpp()->ProducerRemoveAwakable(match_context, awakable, context,
+ signals_state);
}
void ConsumerClose() { helper_->ConsumerClose(); }
@@ -180,16 +183,19 @@ class DataPipeImplTest : public testing::Test {
return dpc()->ConsumerEndReadData(num_bytes_read);
}
MojoResult ConsumerAddAwakable(Awakable* awakable,
- MojoHandleSignals signals,
- bool force,
uint64_t context,
+ bool force,
+ MojoHandleSignals signals,
HandleSignalsState* signals_state) {
- return dpc()->ConsumerAddAwakable(awakable, signals, force, context,
+ return dpc()->ConsumerAddAwakable(awakable, context, force, signals,
signals_state);
}
- void ConsumerRemoveAwakable(Awakable* awakable,
+ void ConsumerRemoveAwakable(bool match_context,
+ Awakable* awakable,
+ uint64_t context,
HandleSignalsState* signals_state) {
- return dpc()->ConsumerRemoveAwakable(awakable, signals_state);
+ return dpc()->ConsumerRemoveAwakable(match_context, awakable, context,
+ signals_state);
}
private:
@@ -281,8 +287,8 @@ class RemoteDataPipeImplTestHelper : public DataPipeImplTestHelper {
Waiter waiter;
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK, message_pipe(dest_i)->AddAwakable(
- 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 987, nullptr));
+ 0, &waiter, 987, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
{
HandleTransport transport(test::HandleTryStartTransport(handle_to_send));
ASSERT_TRUE(transport.is_valid());
@@ -299,7 +305,7 @@ class RemoteDataPipeImplTestHelper : public DataPipeImplTestHelper {
waiter.Wait(test::ActionTimeout(), &context, nullptr));
EXPECT_EQ(987u, context);
HandleSignalsState hss = HandleSignalsState();
- message_pipe(dest_i)->RemoveAwakable(0, &waiter, &hss);
+ message_pipe(dest_i)->RemoveAwakable(0, false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE |
@@ -673,8 +679,8 @@ TYPED_TEST(DataPipeImplTest, SimpleReadWrite) {
// For remote data pipes, we'll have to wait; add the waiter before writing.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 123, nullptr));
+ this->ConsumerAddAwakable(&waiter, 123, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write two elements.
elements[0] = 123;
@@ -692,7 +698,7 @@ TYPED_TEST(DataPipeImplTest, SimpleReadWrite) {
waiter.Wait(test::ActionTimeout(), &context, nullptr));
EXPECT_EQ(123u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -802,8 +808,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 12, &hss));
+ this->ProducerAddAwakable(&pwaiter, 12, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -814,14 +820,14 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 34, &hss));
+ this->ProducerAddAwakable(&pwaiter, 34, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
// We'll need to wait for readability for the remote cases.
cwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 1234, nullptr));
+ this->ConsumerAddAwakable(&cwaiter, 1234, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write two elements.
int32_t elements[2] = {123, 456};
@@ -834,12 +840,12 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Adding a waiter should now succeed.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 56, nullptr));
+ this->ProducerAddAwakable(&pwaiter, 56, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
// And it shouldn't be writable yet.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, pwaiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&pwaiter, &hss);
+ this->ProducerRemoveAwakable(false, &pwaiter, 0, &hss);
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
@@ -851,7 +857,7 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
cwaiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(1234u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&cwaiter, &hss);
+ this->ConsumerRemoveAwakable(false, &cwaiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -872,12 +878,12 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Add a waiter.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 56, nullptr));
+ this->ProducerAddAwakable(&pwaiter, 56, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
// And it still shouldn't be writable yet.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, pwaiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&pwaiter, &hss);
+ this->ProducerRemoveAwakable(false, &pwaiter, 0, &hss);
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
@@ -886,8 +892,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Do it again.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 78, nullptr));
+ this->ProducerAddAwakable(&pwaiter, 78, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
// Read one element.
elements[0] = -1;
@@ -906,7 +912,7 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(78u, context);
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&pwaiter, &hss);
+ this->ProducerRemoveAwakable(false, &pwaiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -929,8 +935,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Add a waiter.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 90, nullptr));
+ this->ProducerAddAwakable(&pwaiter, 90, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
// Read one element, using a two-phase read.
const void* read_buffer = nullptr;
@@ -953,7 +959,7 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(90u, context);
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&pwaiter, &hss);
+ this->ProducerRemoveAwakable(false, &pwaiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -971,8 +977,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Add a waiter.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 12, nullptr));
+ this->ProducerAddAwakable(&pwaiter, 12, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -983,7 +989,7 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(12u, context);
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&pwaiter, &hss);
+ this->ProducerRemoveAwakable(false, &pwaiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -1007,8 +1013,8 @@ TYPED_TEST(DataPipeImplTest, PeerClosedProducerWaiting) {
// Add a waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 12, nullptr));
+ this->ProducerAddAwakable(&waiter, 12, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -1019,7 +1025,7 @@ TYPED_TEST(DataPipeImplTest, PeerClosedProducerWaiting) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(12u, context);
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter, &hss);
+ this->ProducerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -1043,8 +1049,8 @@ TYPED_TEST(DataPipeImplTest, PeerClosedConsumerWaiting) {
// Add a waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 12, nullptr));
+ this->ConsumerAddAwakable(&waiter, 12, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the producer.
this->ProducerClose();
@@ -1055,7 +1061,7 @@ TYPED_TEST(DataPipeImplTest, PeerClosedConsumerWaiting) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(12u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -1081,8 +1087,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 12, &hss));
+ this->ConsumerAddAwakable(&waiter, 12, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -1091,8 +1097,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
// Add waiter: not yet readable.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 34, nullptr));
+ this->ConsumerAddAwakable(&waiter, 34, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write two elements.
int32_t elements[2] = {123, 456};
@@ -1107,7 +1113,7 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(34u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1124,8 +1130,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 78, &hss));
+ this->ConsumerAddAwakable(&waiter, 78, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1147,8 +1153,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 78, &hss));
+ this->ConsumerAddAwakable(&waiter, 78, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1169,8 +1175,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
// Adding a waiter should now succeed.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 90, nullptr));
+ this->ConsumerAddAwakable(&waiter, 90, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write one element.
elements[0] = 789;
@@ -1186,7 +1192,7 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(90u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1196,8 +1202,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
// We'll want to wait for the peer closed signal to propagate.
waiter.Init();
EXPECT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 12, nullptr));
+ this->ConsumerAddAwakable(&waiter, 12, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the producer.
this->ProducerClose();
@@ -1207,8 +1213,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter2.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter2, MOJO_HANDLE_SIGNAL_READABLE,
- false, 34, &hss));
+ this->ConsumerAddAwakable(&waiter2, 34, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
// We don't know if the peer closed signal has propagated yet (for the remote
// cases).
EXPECT_TRUE((hss.satisfied_signals & MOJO_HANDLE_SIGNAL_READABLE));
@@ -1222,7 +1228,7 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(12u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
@@ -1245,8 +1251,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 56, &hss));
+ this->ConsumerAddAwakable(&waiter, 56, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -1272,8 +1278,8 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
// Add waiter: not yet readable.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 12, nullptr));
+ this->ConsumerAddAwakable(&waiter, 12, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write two elements.
int32_t* elements = nullptr;
@@ -1296,7 +1302,7 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(12u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1320,8 +1326,8 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 34, &hss));
+ this->ConsumerAddAwakable(&waiter, 34, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1345,8 +1351,8 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
// Adding a waiter should now succeed.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 56, nullptr));
+ this->ConsumerAddAwakable(&waiter, 56, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Close the producer.
this->ProducerClose();
@@ -1357,7 +1363,7 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
waiter.Wait(test::TinyTimeout(), &context, nullptr));
EXPECT_EQ(56u, context);
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -1383,8 +1389,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 0, &hss));
+ this->ProducerAddAwakable(&pwaiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1402,11 +1408,11 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
// At this point, it shouldn't be writable.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 1, nullptr));
+ this->ProducerAddAwakable(&pwaiter, 1, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, pwaiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&pwaiter, &hss);
+ this->ProducerRemoveAwakable(false, &pwaiter, 0, &hss);
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
@@ -1415,8 +1421,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
// It shouldn't be readable yet either (we'll wait later).
cwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 2, nullptr));
+ this->ConsumerAddAwakable(&cwaiter, 2, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
static_cast<int32_t*>(write_ptr)[0] = 123;
EXPECT_EQ(MOJO_RESULT_OK, this->ProducerEndWriteData(
@@ -1426,8 +1432,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 3, &hss));
+ this->ProducerAddAwakable(&pwaiter, 3, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1438,7 +1444,7 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
EXPECT_EQ(MOJO_RESULT_OK,
cwaiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&cwaiter, &hss);
+ this->ConsumerRemoveAwakable(false, &cwaiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1459,8 +1465,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
cwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 5, &hss));
+ this->ConsumerAddAwakable(&cwaiter, 5, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1483,8 +1489,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 6, &hss));
+ this->ProducerAddAwakable(&pwaiter, 6, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1494,11 +1500,11 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
// But not readable.
cwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 7, nullptr));
+ this->ConsumerAddAwakable(&cwaiter, 7, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, cwaiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&cwaiter, &hss);
+ this->ConsumerRemoveAwakable(false, &cwaiter, 0, &hss);
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -1511,8 +1517,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
cwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 8, &hss));
+ this->ConsumerAddAwakable(&cwaiter, 8, false,
+ MOJO_HANDLE_SIGNAL_READABLE, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1558,8 +1564,8 @@ TYPED_TEST(DataPipeImplTest, AllOrNone) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 1, nullptr));
+ this->ConsumerAddAwakable(&waiter, 1, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write some data.
num_bytes = 5u * sizeof(int32_t);
@@ -1576,7 +1582,7 @@ TYPED_TEST(DataPipeImplTest, AllOrNone) {
// of data to become available.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1680,8 +1686,8 @@ TYPED_TEST(DataPipeImplTest, AllOrNone) {
// We'll need to wait for the peer closed to propagate.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 2, nullptr));
+ this->ConsumerAddAwakable(&waiter, 2, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the producer, then test producer-closed cases.
this->ProducerClose();
@@ -1689,7 +1695,7 @@ TYPED_TEST(DataPipeImplTest, AllOrNone) {
// Wait.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
@@ -1767,8 +1773,8 @@ TYPED_TEST(DataPipeImplTest, WrapAround) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 1, nullptr));
+ this->ConsumerAddAwakable(&waiter, 1, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write 20 bytes.
uint32_t num_bytes = 20u;
@@ -1781,7 +1787,7 @@ TYPED_TEST(DataPipeImplTest, WrapAround) {
// TODO(vtl): (See corresponding TODO in AllOrNone.)
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -1972,8 +1978,8 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseWriteReadCloseConsumer) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 1, nullptr));
+ this->ConsumerAddAwakable(&waiter, 1, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write some data, so we'll have something to read.
uint32_t num_bytes = kTestDataSize;
@@ -1995,7 +2001,7 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseWriteReadCloseConsumer) {
// TODO(vtl): (See corresponding TODO in AllOrNone.)
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2014,8 +2020,8 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseWriteReadCloseConsumer) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 1, nullptr));
+ this->ProducerAddAwakable(&waiter, 1, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -2023,7 +2029,7 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseWriteReadCloseConsumer) {
// Wait for producer to know that the consumer is closed.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter, &hss);
+ this->ProducerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -2105,8 +2111,8 @@ TYPED_TEST(DataPipeImplTest, WriteCloseProducerReadNoData) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 1, nullptr));
+ this->ConsumerAddAwakable(&waiter, 1, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2115,7 +2121,7 @@ TYPED_TEST(DataPipeImplTest, WriteCloseProducerReadNoData) {
// must also know about all the data that was sent.)
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
@@ -2183,8 +2189,8 @@ TYPED_TEST(DataPipeImplTest, WriteReadCloseProducerWaitNoData) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 0, nullptr));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write some data, so we'll have something to read.
uint32_t num_bytes = kTestDataSize;
@@ -2196,7 +2202,7 @@ TYPED_TEST(DataPipeImplTest, WriteReadCloseProducerWaitNoData) {
// Wait.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2215,8 +2221,8 @@ TYPED_TEST(DataPipeImplTest, WriteReadCloseProducerWaitNoData) {
// Add waiter again.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 0, nullptr));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2225,7 +2231,7 @@ TYPED_TEST(DataPipeImplTest, WriteReadCloseProducerWaitNoData) {
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -2254,8 +2260,8 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
// Add waiter (for the consumer to become readable).
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 0, nullptr));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write some data, so we'll have something to read.
uint32_t num_bytes = kTestDataSize;
@@ -2267,7 +2273,7 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
// Wait.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2286,8 +2292,8 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
// Add waiter (for the producer to be closed).
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 0, nullptr));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2295,7 +2301,7 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
// Wait for producer close to be detected.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -2304,8 +2310,8 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
// Add waiter (for the consumer to become readable).
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 0, nullptr));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Complete the two-phase read.
EXPECT_EQ(MOJO_RESULT_OK, this->ConsumerEndReadData(kTestDataSize));
@@ -2314,7 +2320,7 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -2348,14 +2354,14 @@ TYPED_TEST(DataPipeImplTest, BeginWriteCloseConsumerWaitEndWrite) {
// Add waiter (for the consumer to be closed).
waiter1.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&waiter1, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- false, 0, nullptr));
+ this->ProducerAddAwakable(&waiter1, 0, false,
+ MOJO_HANDLE_SIGNAL_PEER_CLOSED, nullptr));
// Add a separate waiter (for the producer to become writable).
waiter2.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&waiter2, MOJO_HANDLE_SIGNAL_WRITABLE,
- false, 0, nullptr));
+ this->ProducerAddAwakable(&waiter2, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITABLE, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -2367,7 +2373,7 @@ TYPED_TEST(DataPipeImplTest, BeginWriteCloseConsumerWaitEndWrite) {
EXPECT_EQ(MOJO_RESULT_OK,
waiter1.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter1, &hss);
+ this->ProducerRemoveAwakable(false, &waiter1, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -2378,7 +2384,7 @@ TYPED_TEST(DataPipeImplTest, BeginWriteCloseConsumerWaitEndWrite) {
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
waiter2.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter2, &hss);
+ this->ProducerRemoveAwakable(false, &waiter2, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -2467,8 +2473,8 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseMoreInvalidArguments) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 1, nullptr));
+ this->ConsumerAddAwakable(&waiter, 1, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Now write some data, so we'll be able to try reading.
int32_t element = 123;
@@ -2481,7 +2487,7 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseMoreInvalidArguments) {
// TODO(vtl): (See corresponding TODO in AllOrNone.)
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2625,7 +2631,7 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, false, 0, &hss));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2637,8 +2643,8 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
Waiter read_waiter;
read_waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&read_waiter, MOJO_HANDLE_SIGNAL_READABLE,
- false, 0, nullptr));
+ this->ConsumerAddAwakable(&read_waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READABLE, nullptr));
// Write 5 bytes.
static const char kTestData[5] = {'A', 'B', 'C', 'D', 'E'};
@@ -2652,8 +2658,8 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
waiter.Init();
ASSERT_EQ(
MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ this->ProducerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
// Set the write threshold to 5.
this->ProducerSetOptions(5);
@@ -2665,8 +2671,8 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
waiter.Init();
ASSERT_EQ(
MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ this->ProducerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
// Set the write threshold to 6.
this->ProducerSetOptions(6);
@@ -2674,11 +2680,11 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Should no longer have the write threshold signal.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ &waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter, &hss);
+ this->ProducerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
@@ -2687,13 +2693,13 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Add a waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ &waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
// Wait for the consumer to be readable.
EXPECT_EQ(MOJO_RESULT_OK,
read_waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
- this->ConsumerRemoveAwakable(&read_waiter, nullptr);
+ this->ConsumerRemoveAwakable(false, &read_waiter, 0, nullptr);
// Read a byte.
char read_byte = 'a';
@@ -2707,7 +2713,7 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Wait; should get the write threshold signal.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter, &hss);
+ this->ProducerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_WRITABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2725,10 +2731,10 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Should no longer have the write threshold signal.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ &waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr));
- this->ProducerRemoveAwakable(&waiter, nullptr);
+ this->ProducerRemoveAwakable(false, &waiter, 0, nullptr);
// Set the write threshold to 0 (which means the element size, 1).
this->ProducerSetOptions(0);
@@ -2739,16 +2745,16 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Should still not have the write threshold signal.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ &waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr));
- this->ProducerRemoveAwakable(&waiter, nullptr);
+ this->ProducerRemoveAwakable(false, &waiter, 0, nullptr);
// Add a waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
- false, 0, nullptr));
+ &waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -2757,7 +2763,7 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ProducerRemoveAwakable(&waiter, &hss);
+ this->ProducerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -2787,11 +2793,11 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, nullptr));
// Trivial wait: it shouldn't have the read threshold signal.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -2801,7 +2807,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, nullptr));
// Write a byte.
const char kTestData[] = {'x'};
@@ -2815,7 +2821,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
// Wait for the read threshold signal.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2833,8 +2839,8 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
hss = HandleSignalsState();
ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, &hss));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READ_THRESHOLD, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2851,7 +2857,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, nullptr));
// Write another byte.
num_bytes = kTestDataSize;
@@ -2863,7 +2869,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
// Wait for the read threshold signal.
EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
@@ -2883,11 +2889,11 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, nullptr));
// Trivial wait: it shouldn't have the read threshold signal.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -2897,11 +2903,11 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, nullptr));
// Trivial wait: it shouldn't have the read threshold signal.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -2911,7 +2917,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
+ &waiter, 0, false, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2920,7 +2926,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
waiter.Wait(test::TinyTimeout(), nullptr, nullptr));
hss = HandleSignalsState();
- this->ConsumerRemoveAwakable(&waiter, &hss);
+ this->ConsumerRemoveAwakable(false, &waiter, 0, &hss);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED,
@@ -2937,8 +2943,8 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
hss = HandleSignalsState();
ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, &hss));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READ_THRESHOLD, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
@@ -2959,8 +2965,8 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
hss = HandleSignalsState();
ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, &hss));
+ this->ConsumerAddAwakable(&waiter, 0, false,
+ MOJO_HANDLE_SIGNAL_READ_THRESHOLD, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
« no previous file with comments | « mojo/edk/system/data_pipe_consumer_dispatcher.cc ('k') | mojo/edk/system/data_pipe_producer_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698