OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/system/dispatcher.h" | 5 #include "mojo/system/dispatcher.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "mojo/system/constants.h" | 8 #include "mojo/system/constants.h" |
9 #include "mojo/system/message_pipe_dispatcher.h" | 9 #include "mojo/system/message_pipe_dispatcher.h" |
10 #include "mojo/system/platform_handle_dispatcher.h" | 10 #include "mojo/system/platform_handle_dispatcher.h" |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 MojoMapBufferFlags flags, | 208 MojoMapBufferFlags flags, |
209 scoped_ptr<RawSharedBufferMapping>* mapping) { | 209 scoped_ptr<RawSharedBufferMapping>* mapping) { |
210 base::AutoLock locker(lock_); | 210 base::AutoLock locker(lock_); |
211 if (is_closed_) | 211 if (is_closed_) |
212 return MOJO_RESULT_INVALID_ARGUMENT; | 212 return MOJO_RESULT_INVALID_ARGUMENT; |
213 | 213 |
214 return MapBufferImplNoLock(offset, num_bytes, flags, mapping); | 214 return MapBufferImplNoLock(offset, num_bytes, flags, mapping); |
215 } | 215 } |
216 | 216 |
217 MojoResult Dispatcher::AddWaiter(Waiter* waiter, | 217 MojoResult Dispatcher::AddWaiter(Waiter* waiter, |
218 MojoWaitFlags flags, | 218 MojoHandleSignals signals, |
219 uint32_t context) { | 219 uint32_t context) { |
220 base::AutoLock locker(lock_); | 220 base::AutoLock locker(lock_); |
221 if (is_closed_) | 221 if (is_closed_) |
222 return MOJO_RESULT_INVALID_ARGUMENT; | 222 return MOJO_RESULT_INVALID_ARGUMENT; |
223 | 223 |
224 return AddWaiterImplNoLock(waiter, flags, context); | 224 return AddWaiterImplNoLock(waiter, signals, context); |
225 } | 225 } |
226 | 226 |
227 void Dispatcher::RemoveWaiter(Waiter* waiter) { | 227 void Dispatcher::RemoveWaiter(Waiter* waiter) { |
228 base::AutoLock locker(lock_); | 228 base::AutoLock locker(lock_); |
229 if (is_closed_) | 229 if (is_closed_) |
230 return; | 230 return; |
231 RemoveWaiterImplNoLock(waiter); | 231 RemoveWaiterImplNoLock(waiter); |
232 } | 232 } |
233 | 233 |
234 Dispatcher::Dispatcher() | 234 Dispatcher::Dispatcher() |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 uint64_t /*num_bytes*/, | 340 uint64_t /*num_bytes*/, |
341 MojoMapBufferFlags /*flags*/, | 341 MojoMapBufferFlags /*flags*/, |
342 scoped_ptr<RawSharedBufferMapping>* /*mapping*/) { | 342 scoped_ptr<RawSharedBufferMapping>* /*mapping*/) { |
343 lock_.AssertAcquired(); | 343 lock_.AssertAcquired(); |
344 DCHECK(!is_closed_); | 344 DCHECK(!is_closed_); |
345 // By default, not supported. Only needed for buffer dispatchers. | 345 // By default, not supported. Only needed for buffer dispatchers. |
346 return MOJO_RESULT_INVALID_ARGUMENT; | 346 return MOJO_RESULT_INVALID_ARGUMENT; |
347 } | 347 } |
348 | 348 |
349 MojoResult Dispatcher::AddWaiterImplNoLock(Waiter* /*waiter*/, | 349 MojoResult Dispatcher::AddWaiterImplNoLock(Waiter* /*waiter*/, |
350 MojoWaitFlags /*flags*/, | 350 MojoHandleSignals /*signals*/, |
351 uint32_t /*context*/) { | 351 uint32_t /*context*/) { |
352 lock_.AssertAcquired(); | 352 lock_.AssertAcquired(); |
353 DCHECK(!is_closed_); | 353 DCHECK(!is_closed_); |
354 // By default, waiting isn't supported. Only dispatchers that can be waited on | 354 // By default, waiting isn't supported. Only dispatchers that can be waited on |
355 // will do something nontrivial. | 355 // will do something nontrivial. |
356 return MOJO_RESULT_FAILED_PRECONDITION; | 356 return MOJO_RESULT_FAILED_PRECONDITION; |
357 } | 357 } |
358 | 358 |
359 void Dispatcher::RemoveWaiterImplNoLock(Waiter* /*waiter*/) { | 359 void Dispatcher::RemoveWaiterImplNoLock(Waiter* /*waiter*/) { |
360 lock_.AssertAcquired(); | 360 lock_.AssertAcquired(); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 // DispatcherTransport --------------------------------------------------------- | 452 // DispatcherTransport --------------------------------------------------------- |
453 | 453 |
454 void DispatcherTransport::End() { | 454 void DispatcherTransport::End() { |
455 DCHECK(dispatcher_); | 455 DCHECK(dispatcher_); |
456 dispatcher_->lock_.Release(); | 456 dispatcher_->lock_.Release(); |
457 dispatcher_ = NULL; | 457 dispatcher_ = NULL; |
458 } | 458 } |
459 | 459 |
460 } // namespace system | 460 } // namespace system |
461 } // namespace mojo | 461 } // namespace mojo |
OLD | NEW |