OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/edk/system/raw_channel.h" | 5 #include "mojo/edk/system/raw_channel.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> |
10 | 11 |
11 #include "base/bind.h" | 12 #include "base/bind.h" |
12 #include "base/location.h" | 13 #include "base/location.h" |
13 #include "base/logging.h" | 14 #include "base/logging.h" |
14 #include "base/message_loop/message_loop.h" | 15 #include "base/message_loop/message_loop.h" |
15 #include "mojo/edk/system/message_in_transit.h" | 16 #include "mojo/edk/system/message_in_transit.h" |
16 #include "mojo/edk/system/transport_data.h" | 17 #include "mojo/edk/system/transport_data.h" |
17 | 18 |
18 namespace mojo { | 19 namespace mojo { |
19 namespace system { | 20 namespace system { |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 | 211 |
211 // Reset the delegate so that it won't receive further calls. | 212 // Reset the delegate so that it won't receive further calls. |
212 delegate_ = nullptr; | 213 delegate_ = nullptr; |
213 if (set_on_shutdown_) { | 214 if (set_on_shutdown_) { |
214 *set_on_shutdown_ = true; | 215 *set_on_shutdown_ = true; |
215 set_on_shutdown_ = nullptr; | 216 set_on_shutdown_ = nullptr; |
216 } | 217 } |
217 write_stopped_ = true; | 218 write_stopped_ = true; |
218 weak_ptr_factory_.InvalidateWeakPtrs(); | 219 weak_ptr_factory_.InvalidateWeakPtrs(); |
219 | 220 |
220 OnShutdownNoLock(read_buffer_.Pass(), write_buffer_.Pass()); | 221 OnShutdownNoLock(std::move(read_buffer_), std::move(write_buffer_)); |
221 } | 222 } |
222 | 223 |
223 // Reminder: This must be thread-safe. | 224 // Reminder: This must be thread-safe. |
224 bool RawChannel::WriteMessage(scoped_ptr<MessageInTransit> message) { | 225 bool RawChannel::WriteMessage(scoped_ptr<MessageInTransit> message) { |
225 DCHECK(message); | 226 DCHECK(message); |
226 | 227 |
227 MutexLocker locker(&write_mutex_); | 228 MutexLocker locker(&write_mutex_); |
228 if (write_stopped_) | 229 if (write_stopped_) |
229 return false; | 230 return false; |
230 | 231 |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
503 | 504 |
504 write_stopped_ = true; | 505 write_stopped_ = true; |
505 write_buffer_->message_queue_.Clear(); | 506 write_buffer_->message_queue_.Clear(); |
506 write_buffer_->platform_handles_offset_ = 0; | 507 write_buffer_->platform_handles_offset_ = 0; |
507 write_buffer_->data_offset_ = 0; | 508 write_buffer_->data_offset_ = 0; |
508 return false; | 509 return false; |
509 } | 510 } |
510 | 511 |
511 } // namespace system | 512 } // namespace system |
512 } // namespace mojo | 513 } // namespace mojo |
OLD | NEW |