| 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 "components/nacl/loader/nacl_ipc_adapter.h" | 5 #include "components/nacl/loader/nacl_ipc_adapter.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 430 base::AutoLock lock(lock_); | 430 base::AutoLock lock(lock_); |
| 431 while (locked_data_.to_be_received_.empty() && | 431 while (locked_data_.to_be_received_.empty() && |
| 432 !locked_data_.channel_closed_) | 432 !locked_data_.channel_closed_) |
| 433 cond_var_.Wait(); | 433 cond_var_.Wait(); |
| 434 if (locked_data_.channel_closed_) { | 434 if (locked_data_.channel_closed_) { |
| 435 retval = -1; | 435 retval = -1; |
| 436 } else { | 436 } else { |
| 437 retval = LockedReceive(msg); | 437 retval = LockedReceive(msg); |
| 438 DCHECK(retval > 0); | 438 DCHECK(retval > 0); |
| 439 } | 439 } |
| 440 cond_var_.Signal(); |
| 440 } | 441 } |
| 441 cond_var_.Signal(); | |
| 442 return retval; | 442 return retval; |
| 443 } | 443 } |
| 444 | 444 |
| 445 void NaClIPCAdapter::CloseChannel() { | 445 void NaClIPCAdapter::CloseChannel() { |
| 446 { | 446 { |
| 447 base::AutoLock lock(lock_); | 447 base::AutoLock lock(lock_); |
| 448 locked_data_.channel_closed_ = true; | 448 locked_data_.channel_closed_ = true; |
| 449 cond_var_.Signal(); |
| 449 } | 450 } |
| 450 cond_var_.Signal(); | |
| 451 | 451 |
| 452 task_runner_->PostTask(FROM_HERE, | 452 task_runner_->PostTask(FROM_HERE, |
| 453 base::Bind(&NaClIPCAdapter::CloseChannelOnIOThread, this)); | 453 base::Bind(&NaClIPCAdapter::CloseChannelOnIOThread, this)); |
| 454 } | 454 } |
| 455 | 455 |
| 456 NaClDesc* NaClIPCAdapter::MakeNaClDesc() { | 456 NaClDesc* NaClIPCAdapter::MakeNaClDesc() { |
| 457 return MakeNaClDescCustom(this); | 457 return MakeNaClDescCustom(this); |
| 458 } | 458 } |
| 459 | 459 |
| 460 #if defined(OS_POSIX) | 460 #if defined(OS_POSIX) |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 } | 544 } |
| 545 // No default, so the compiler will warn us if new types get added. | 545 // No default, so the compiler will warn us if new types get added. |
| 546 } | 546 } |
| 547 if (nacl_desc.get()) | 547 if (nacl_desc.get()) |
| 548 rewritten_msg->AddDescriptor(nacl_desc.release()); | 548 rewritten_msg->AddDescriptor(nacl_desc.release()); |
| 549 } | 549 } |
| 550 if (new_msg) | 550 if (new_msg) |
| 551 SaveMessage(*new_msg, rewritten_msg.get()); | 551 SaveMessage(*new_msg, rewritten_msg.get()); |
| 552 else | 552 else |
| 553 SaveMessage(msg, rewritten_msg.get()); | 553 SaveMessage(msg, rewritten_msg.get()); |
| 554 cond_var_.Signal(); |
| 554 } | 555 } |
| 555 cond_var_.Signal(); | |
| 556 return true; | 556 return true; |
| 557 } | 557 } |
| 558 | 558 |
| 559 void NaClIPCAdapter::OnChannelConnected(int32 peer_pid) { | 559 void NaClIPCAdapter::OnChannelConnected(int32 peer_pid) { |
| 560 } | 560 } |
| 561 | 561 |
| 562 void NaClIPCAdapter::OnChannelError() { | 562 void NaClIPCAdapter::OnChannelError() { |
| 563 CloseChannel(); | 563 CloseChannel(); |
| 564 } | 564 } |
| 565 | 565 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 header.flags = msg.flags(); | 683 header.flags = msg.flags(); |
| 684 header.num_fds = static_cast<int>(rewritten_msg->desc_count()); | 684 header.num_fds = static_cast<int>(rewritten_msg->desc_count()); |
| 685 | 685 |
| 686 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); | 686 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); |
| 687 locked_data_.to_be_received_.push(rewritten_msg); | 687 locked_data_.to_be_received_.push(rewritten_msg); |
| 688 } | 688 } |
| 689 | 689 |
| 690 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { | 690 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { |
| 691 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); | 691 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); |
| 692 } | 692 } |
| OLD | NEW |