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

Side by Side Diff: src/trusted/reverse_service/reverse_service.cc

Issue 7942008: NaCl repo side changes to make crash reporting more reliable. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "native_client/src/trusted/reverse_service/reverse_service.h" 9 #include "native_client/src/trusted/reverse_service/reverse_service.h"
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 NaClSrpcArg** in_args, 45 NaClSrpcArg** in_args,
46 NaClSrpcArg** out_args, 46 NaClSrpcArg** out_args,
47 NaClSrpcClosure* done) { 47 NaClSrpcClosure* done) {
48 nacl::ReverseService* service = reinterpret_cast<nacl::ReverseService*>( 48 nacl::ReverseService* service = reinterpret_cast<nacl::ReverseService*>(
49 rpc->channel->server_instance_data); 49 rpc->channel->server_instance_data);
50 NaClSrpcClosureRunner on_return(done); 50 NaClSrpcClosureRunner on_return(done);
51 51
52 UNREFERENCED_PARAMETER(in_args); 52 UNREFERENCED_PARAMETER(in_args);
53 53
54 NaClLog(4, "Entered AddChannel\n"); 54 NaClLog(4, "Entered AddChannel\n");
55 out_args[0]->u.bval = service->Start(); 55 out_args[0]->u.bval = service->Start(false);
56 NaClLog(4, "Leaving AddChannel\n"); 56 NaClLog(4, "Leaving AddChannel\n");
57 rpc->result = NACL_SRPC_RESULT_OK; 57 rpc->result = NACL_SRPC_RESULT_OK;
58 } 58 }
59 59
60 void RevLog(NaClSrpcRpc* rpc, 60 void RevLog(NaClSrpcRpc* rpc,
61 NaClSrpcArg** in_args, 61 NaClSrpcArg** in_args,
62 NaClSrpcArg** out_args, 62 NaClSrpcArg** out_args,
63 NaClSrpcClosure* done) { 63 NaClSrpcClosure* done) {
64 nacl::ReverseService* service = reinterpret_cast<nacl::ReverseService*>( 64 nacl::ReverseService* service = reinterpret_cast<nacl::ReverseService*>(
65 rpc->channel->server_instance_data); 65 rpc->channel->server_instance_data);
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 395
396 ReverseService::~ReverseService() { 396 ReverseService::~ReverseService() {
397 if (thread_count_ != 0) { 397 if (thread_count_ != 0) {
398 NaClLog(LOG_FATAL, "ReverseService dtor when thread count is nonzero\n"); 398 NaClLog(LOG_FATAL, "ReverseService dtor when thread count is nonzero\n");
399 } 399 }
400 NaClCondVarDtor(&cv_); 400 NaClCondVarDtor(&cv_);
401 NaClMutexDtor(&mu_); 401 NaClMutexDtor(&mu_);
402 } 402 }
403 403
404 404
405 bool ReverseService::Start() { 405 static void RevServiceCbBinder(void *state,
406 int server_loop_ret) {
407 ReverseService *obj = reinterpret_cast<ReverseService *>(state);
408
409 UNREFERENCED_PARAMETER(server_loop_ret);
410 obj->reverse_interface()->ReportCrash();
411 }
412
413
414 bool ReverseService::Start(bool crash_report) {
406 NaClLog(4, "Entered ReverseService::Start\n"); 415 NaClLog(4, "Entered ReverseService::Start\n");
407 return service_socket_->StartService(reinterpret_cast<void*>(this)); 416 if (crash_report) {
417 return service_socket_->StartServiceCb(RevServiceCbBinder,
418 reinterpret_cast<void*>(this));
419 } else {
420 return service_socket_->StartServiceCb(NULL,
421 reinterpret_cast<void*>(this));
422 }
408 } 423 }
409 424
410 void ReverseService::WaitForServiceThreadsToExit() { 425 void ReverseService::WaitForServiceThreadsToExit() {
411 NaClLog(4, "ReverseService::WaitForServiceThreadsToExit\n"); 426 NaClLog(4, "ReverseService::WaitForServiceThreadsToExit\n");
412 NaClXMutexLock(&mu_); 427 NaClXMutexLock(&mu_);
413 while (0 != thread_count_) { 428 while (0 != thread_count_) {
414 NaClXCondVarWait(&cv_, &mu_); 429 NaClXCondVarWait(&cv_, &mu_);
415 NaClLog(5, "ReverseService::WaitForServiceThreadsToExit: woke up\n"); 430 NaClLog(5, "ReverseService::WaitForServiceThreadsToExit: woke up\n");
416 } 431 }
417 NaClXMutexUnlock(&mu_); 432 NaClXMutexUnlock(&mu_);
(...skipping 18 matching lines...) Expand all
436 ("ReverseService::DecrThreadCount:" 451 ("ReverseService::DecrThreadCount:"
437 " Decrementing thread count when count is zero\n")); 452 " Decrementing thread count when count is zero\n"));
438 } 453 }
439 if (0 == --thread_count_) { 454 if (0 == --thread_count_) {
440 NaClXCondVarBroadcast(&cv_); 455 NaClXCondVarBroadcast(&cv_);
441 } 456 }
442 NaClXMutexUnlock(&mu_); 457 NaClXMutexUnlock(&mu_);
443 } 458 }
444 459
445 } // namespace nacl 460 } // namespace nacl
OLDNEW
« no previous file with comments | « src/trusted/reverse_service/reverse_service.h ('k') | src/trusted/reverse_service/reverse_socket.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698