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

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

Issue 2068483002: Add an unconditional version of DispatcherAddAwakable(): AddAwakableUnconditional(). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: oops 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 cf9dd7a0e21be01a091d1d6135043ebe61f53fb1..548192a5cf54c60aa59e1d5a4cbe4d3f2421a71f 100644
--- a/mojo/edk/system/data_pipe_impl_unittest.cc
+++ b/mojo/edk/system/data_pipe_impl_unittest.cc
@@ -141,9 +141,10 @@ class DataPipeImplTest : public testing::Test {
}
MojoResult ProducerAddAwakable(Awakable* awakable,
MojoHandleSignals signals,
+ bool force,
uint64_t context,
HandleSignalsState* signals_state) {
- return dpp()->ProducerAddAwakable(awakable, signals, context,
+ return dpp()->ProducerAddAwakable(awakable, signals, force, context,
signals_state);
}
void ProducerRemoveAwakable(Awakable* awakable,
@@ -180,9 +181,10 @@ class DataPipeImplTest : public testing::Test {
}
MojoResult ConsumerAddAwakable(Awakable* awakable,
MojoHandleSignals signals,
+ bool force,
uint64_t context,
HandleSignalsState* signals_state) {
- return dpc()->ConsumerAddAwakable(awakable, signals, context,
+ return dpc()->ConsumerAddAwakable(awakable, signals, force, context,
signals_state);
}
void ConsumerRemoveAwakable(Awakable* awakable,
@@ -278,9 +280,9 @@ class RemoteDataPipeImplTestHelper : public DataPipeImplTestHelper {
// where it's already readable.)
Waiter waiter;
waiter.Init();
- ASSERT_EQ(MOJO_RESULT_OK,
- message_pipe(dest_i)->AddAwakable(
- 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 987, nullptr));
+ ASSERT_EQ(MOJO_RESULT_OK, message_pipe(dest_i)->AddAwakable(
+ 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 987, nullptr));
{
HandleTransport transport(test::HandleTryStartTransport(handle_to_send));
ASSERT_TRUE(transport.is_valid());
@@ -670,8 +672,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, 123,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 123, nullptr));
// Write two elements.
elements[0] = 123;
@@ -798,8 +800,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_READABLE, 12,
- &hss));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 12, &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 |
@@ -810,14 +812,14 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 34,
- &hss));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 34, &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,
- 1234, nullptr));
+ false, 1234, nullptr));
// Write two elements.
int32_t elements[2] = {123, 456};
@@ -830,8 +832,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Adding a waiter should now succeed.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 56,
- nullptr));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 56, nullptr));
// And it shouldn't be writable yet.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, pwaiter.Wait(0, nullptr));
hss = HandleSignalsState();
@@ -867,8 +869,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Add a waiter.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 56,
- nullptr));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 56, nullptr));
// And it still shouldn't be writable yet.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, pwaiter.Wait(0, nullptr));
hss = HandleSignalsState();
@@ -881,8 +883,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Do it again.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 78,
- nullptr));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 78, nullptr));
// Read one element.
elements[0] = -1;
@@ -923,8 +925,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Add a waiter.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 90,
- nullptr));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 90, nullptr));
// Read one element, using a two-phase read.
const void* read_buffer = nullptr;
@@ -964,8 +966,8 @@ TYPED_TEST(DataPipeImplTest, BasicProducerWaiting) {
// Add a waiter.
pwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 12,
- nullptr));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 12, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -1001,7 +1003,7 @@ TYPED_TEST(DataPipeImplTest, PeerClosedProducerWaiting) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 12, nullptr));
+ false, 12, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -1036,7 +1038,7 @@ TYPED_TEST(DataPipeImplTest, PeerClosedConsumerWaiting) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 12, nullptr));
+ false, 12, nullptr));
// Close the producer.
this->ProducerClose();
@@ -1072,8 +1074,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE, 12,
- &hss));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 12, &hss));
EXPECT_EQ(0u, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
@@ -1082,8 +1084,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
// Add waiter: not yet readable.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 34,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 34, nullptr));
// Write two elements.
int32_t elements[2] = {123, 456};
@@ -1114,8 +1116,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 78,
- &hss));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 78, &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 |
@@ -1137,8 +1139,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 78,
- &hss));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 78, &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 |
@@ -1159,8 +1161,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, 90,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 90, nullptr));
// Write one element.
elements[0] = 789;
@@ -1186,7 +1188,7 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
EXPECT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 12, nullptr));
+ false, 12, nullptr));
// Close the producer.
this->ProducerClose();
@@ -1196,8 +1198,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter2.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter2, MOJO_HANDLE_SIGNAL_READABLE, 34,
- &hss));
+ this->ConsumerAddAwakable(&waiter2, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 34, &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));
@@ -1233,8 +1235,8 @@ TYPED_TEST(DataPipeImplTest, BasicConsumerWaiting) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 56,
- &hss));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 56, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
@@ -1260,8 +1262,8 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
// Add waiter: not yet readable.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 12,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 12, nullptr));
// Write two elements.
int32_t* elements = nullptr;
@@ -1307,8 +1309,8 @@ TYPED_TEST(DataPipeImplTest, ConsumerWaitingTwoPhase) {
waiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 34,
- &hss));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 34, &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 |
@@ -1332,8 +1334,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, 56,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 56, nullptr));
// Close the producer.
this->ProducerClose();
@@ -1370,8 +1372,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 0,
- &hss));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 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 |
@@ -1389,8 +1391,8 @@ 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, 1,
- nullptr));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 1, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, pwaiter.Wait(0, nullptr));
hss = HandleSignalsState();
this->ProducerRemoveAwakable(&pwaiter, &hss);
@@ -1402,8 +1404,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, 2,
- nullptr));
+ this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 2, nullptr));
static_cast<int32_t*>(write_ptr)[0] = 123;
EXPECT_EQ(MOJO_RESULT_OK, this->ProducerEndWriteData(
@@ -1413,8 +1415,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 3,
- &hss));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 3, &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 |
@@ -1445,8 +1447,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
cwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE, 5,
- &hss));
+ this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 5, &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 |
@@ -1469,8 +1471,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
pwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE, 6,
- &hss));
+ this->ProducerAddAwakable(&pwaiter, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 6, &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 |
@@ -1480,8 +1482,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
// But not readable.
cwaiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE, 7,
- nullptr));
+ this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 7, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, cwaiter.Wait(0, nullptr));
hss = HandleSignalsState();
this->ConsumerRemoveAwakable(&cwaiter, &hss);
@@ -1497,8 +1499,8 @@ TYPED_TEST(DataPipeImplTest, BasicTwoPhaseWaiting) {
cwaiter.Init();
hss = HandleSignalsState();
EXPECT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE, 8,
- &hss));
+ this->ConsumerAddAwakable(&cwaiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 8, &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 |
@@ -1544,8 +1546,8 @@ TYPED_TEST(DataPipeImplTest, AllOrNone) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 1,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 1, nullptr));
// Write some data.
num_bytes = 5u * sizeof(int32_t);
@@ -1667,7 +1669,7 @@ TYPED_TEST(DataPipeImplTest, AllOrNone) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 2, nullptr));
+ false, 2, nullptr));
// Close the producer, then test producer-closed cases.
this->ProducerClose();
@@ -1753,8 +1755,8 @@ TYPED_TEST(DataPipeImplTest, WrapAround) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 1,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 1, nullptr));
// Write 20 bytes.
uint32_t num_bytes = 20u;
@@ -1958,8 +1960,8 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseWriteReadCloseConsumer) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 1,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 1, nullptr));
// Write some data, so we'll have something to read.
uint32_t num_bytes = kTestDataSize;
@@ -2001,7 +2003,7 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseWriteReadCloseConsumer) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 1, nullptr));
+ false, 1, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -2092,7 +2094,7 @@ TYPED_TEST(DataPipeImplTest, WriteCloseProducerReadNoData) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 1, nullptr));
+ false, 1, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2169,8 +2171,8 @@ TYPED_TEST(DataPipeImplTest, WriteReadCloseProducerWaitNoData) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 0,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 0, nullptr));
// Write some data, so we'll have something to read.
uint32_t num_bytes = kTestDataSize;
@@ -2201,8 +2203,8 @@ TYPED_TEST(DataPipeImplTest, WriteReadCloseProducerWaitNoData) {
// Add waiter again.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 0,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 0, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2240,8 +2242,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, 0,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 0, nullptr));
// Write some data, so we'll have something to read.
uint32_t num_bytes = kTestDataSize;
@@ -2273,7 +2275,7 @@ TYPED_TEST(DataPipeImplTest, BeginReadCloseProducerWaitEndReadNoData) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 0, nullptr));
+ false, 0, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2290,8 +2292,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, 0,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 0, nullptr));
// Complete the two-phase read.
EXPECT_EQ(MOJO_RESULT_OK, this->ConsumerEndReadData(kTestDataSize));
@@ -2335,13 +2337,13 @@ TYPED_TEST(DataPipeImplTest, BeginWriteCloseConsumerWaitEndWrite) {
waiter1.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ProducerAddAwakable(&waiter1, MOJO_HANDLE_SIGNAL_PEER_CLOSED,
- 0, nullptr));
+ false, 0, 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, 0,
- nullptr));
+ this->ProducerAddAwakable(&waiter2, MOJO_HANDLE_SIGNAL_WRITABLE,
+ false, 0, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -2452,8 +2454,8 @@ TYPED_TEST(DataPipeImplTest, TwoPhaseMoreInvalidArguments) {
// Add waiter.
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
- this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 1,
- nullptr));
+ this->ConsumerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_READABLE,
+ false, 1, nullptr));
// Now write some data, so we'll be able to try reading.
int32_t element = 123;
@@ -2610,7 +2612,7 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, 0, &hss));
+ &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, false, 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 |
@@ -2623,7 +2625,7 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
read_waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(&read_waiter, MOJO_HANDLE_SIGNAL_READABLE,
- 0, nullptr));
+ false, 0, nullptr));
// Write 5 bytes.
static const char kTestData[5] = {'A', 'B', 'C', 'D', 'E'};
@@ -2635,9 +2637,10 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// It should still have the write threshold signal.
waiter.Init();
- ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, 0, nullptr));
+ ASSERT_EQ(
+ MOJO_RESULT_ALREADY_EXISTS,
+ this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
// Set the write threshold to 5.
this->ProducerSetOptions(5);
@@ -2647,18 +2650,19 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Should still have the write threshold signal.
waiter.Init();
- ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
- this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, 0, nullptr));
+ ASSERT_EQ(
+ MOJO_RESULT_ALREADY_EXISTS,
+ this->ProducerAddAwakable(&waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
// Set the write threshold to 6.
this->ProducerSetOptions(6);
// Should no longer have the write threshold signal.
waiter.Init();
- ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, 0, nullptr));
+ ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
+ &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr));
hss = HandleSignalsState();
this->ProducerRemoveAwakable(&waiter, &hss);
@@ -2669,9 +2673,9 @@ TYPED_TEST(DataPipeImplTest, WriteThreshold) {
// Add a waiter.
waiter.Init();
- ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, 0, nullptr));
+ ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
+ &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
// Wait for the consumer to be readable.
EXPECT_EQ(MOJO_RESULT_OK, read_waiter.Wait(test::TinyTimeout(), nullptr));
@@ -2706,9 +2710,9 @@ 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, 0, nullptr));
+ ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
+ &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr));
this->ProducerRemoveAwakable(&waiter, nullptr);
@@ -2720,17 +2724,17 @@ 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, 0, nullptr));
+ ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
+ &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr));
this->ProducerRemoveAwakable(&waiter, nullptr);
// Add a waiter.
waiter.Init();
- ASSERT_EQ(MOJO_RESULT_OK,
- this->ProducerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD, 0, nullptr));
+ ASSERT_EQ(MOJO_RESULT_OK, this->ProducerAddAwakable(
+ &waiter, MOJO_HANDLE_SIGNAL_WRITE_THRESHOLD,
+ false, 0, nullptr));
// Close the consumer.
this->ConsumerClose();
@@ -2769,7 +2773,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, nullptr));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
// Trivial wait: it shouldn't have the read threshold signal.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr));
hss = HandleSignalsState();
@@ -2783,7 +2787,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, nullptr));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
// Write a byte.
const char kTestData[] = {'x'};
@@ -2816,7 +2820,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
hss = HandleSignalsState();
ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, &hss));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 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,7 +2837,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, nullptr));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
// Write another byte.
num_bytes = kTestDataSize;
@@ -2865,7 +2869,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, nullptr));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
// Trivial wait: it shouldn't have the read threshold signal.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr));
hss = HandleSignalsState();
@@ -2879,7 +2883,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, nullptr));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
// Trivial wait: it shouldn't have the read threshold signal.
EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, waiter.Wait(0, nullptr));
hss = HandleSignalsState();
@@ -2893,7 +2897,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
waiter.Init();
ASSERT_EQ(MOJO_RESULT_OK,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, nullptr));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, nullptr));
// Close the producer.
this->ProducerClose();
@@ -2920,7 +2924,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
hss = HandleSignalsState();
ASSERT_EQ(MOJO_RESULT_ALREADY_EXISTS,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, &hss));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, &hss));
EXPECT_EQ(MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_PEER_CLOSED |
MOJO_HANDLE_SIGNAL_READ_THRESHOLD,
hss.satisfied_signals);
@@ -2942,7 +2946,7 @@ TYPED_TEST(DataPipeImplTest, ReadThreshold) {
hss = HandleSignalsState();
ASSERT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
this->ConsumerAddAwakable(
- &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, &hss));
+ &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, false, 0, &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