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

Side by Side Diff: src/trusted/reverse_service/reverse_socket.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
« no previous file with comments | « src/trusted/reverse_service/reverse_socket.h ('k') | src/trusted/service_runtime/sel_ldr.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "native_client/src/trusted/reverse_service/reverse_socket.h" 7 #include "native_client/src/trusted/reverse_service/reverse_socket.h"
8 8
9 #include "native_client/src/include/nacl_scoped_ptr.h" 9 #include "native_client/src/include/nacl_scoped_ptr.h"
10 #include "native_client/src/shared/platform/nacl_log.h" 10 #include "native_client/src/shared/platform/nacl_log.h"
11 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h" 11 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
12 #include "native_client/src/trusted/nacl_base/nacl_refcount.h" 12 #include "native_client/src/trusted/nacl_base/nacl_refcount.h"
13 #include "native_client/src/trusted/desc/nacl_desc_base.h" 13 #include "native_client/src/trusted/desc/nacl_desc_base.h"
14 #include "native_client/src/trusted/simple_service/nacl_simple_rservice.h" 14 #include "native_client/src/trusted/simple_service/nacl_simple_rservice.h"
15 15
16 namespace nacl { 16 namespace nacl {
17 17
18 ReverseSocket::~ReverseSocket() { 18 ReverseSocket::~ReverseSocket() {
19 NaClLog(4, "~ReverseSocket, about to delete conn_cap_ 0x%"NACL_PRIxPTR"\n", 19 NaClLog(4, "~ReverseSocket, about to delete conn_cap_ 0x%"NACL_PRIxPTR"\n",
20 (uintptr_t) conn_cap_); 20 (uintptr_t) conn_cap_);
21 delete conn_cap_; 21 delete conn_cap_;
22 NaClRefCountUnref(reinterpret_cast<NaClRefCount*>(rev_service_)); 22 NaClRefCountUnref(reinterpret_cast<NaClRefCount*>(rev_service_));
23 rev_service_ = NULL; 23 rev_service_ = NULL;
24 } 24 }
25 25
26 bool ReverseSocket::StartService(void* server_instance_data) { 26 bool ReverseSocket::StartServiceCb(void (*exit_cb)(void *server_instance_data,
27 int server_loop_ret),
28 void* server_instance_data) {
27 NaClLog(4, "Entered ReverseSocket::StartService\n"); 29 NaClLog(4, "Entered ReverseSocket::StartService\n");
28 nacl::scoped_ptr_malloc<NaClSimpleRevService> rev_service_tmp( 30 nacl::scoped_ptr_malloc<NaClSimpleRevService> rev_service_tmp(
29 reinterpret_cast<NaClSimpleRevService*>( 31 reinterpret_cast<NaClSimpleRevService*>(
30 malloc(sizeof(NaClSimpleRevService)))); 32 malloc(sizeof(NaClSimpleRevService))));
31 if (NULL == rev_service_tmp.get()) { 33 if (NULL == rev_service_tmp.get()) {
32 NaClLog(4, "FAILURE: Leaving ReverseSocket::StartService\n"); 34 NaClLog(4, "FAILURE: Leaving ReverseSocket::StartService\n");
33 return false; 35 return false;
34 } 36 }
35 nacl::scoped_ptr_nacl_refcount<NaClSimpleRevService> ref( 37 nacl::scoped_ptr_nacl_refcount<NaClSimpleRevService> ref(
36 &rev_service_tmp, 38 &rev_service_tmp,
37 NaClSimpleRevServiceCtor(rev_service_tmp.get(), 39 NaClSimpleRevServiceCtor(rev_service_tmp.get(),
38 NaClDescRef(conn_cap_->desc()), 40 NaClDescRef(conn_cap_->desc()),
39 handlers_, 41 handlers_,
40 thread_factory_fn_, 42 thread_factory_fn_,
41 thread_factory_data_)); 43 thread_factory_data_));
42 if (!ref.constructed()) { 44 if (!ref.constructed()) {
43 NaClLog(4, "FAILURE: Leaving ReverseSocket::StartService\n"); 45 NaClLog(4, "FAILURE: Leaving ReverseSocket::StartService\n");
44 NaClDescUnref(conn_cap_->desc()); 46 NaClDescUnref(conn_cap_->desc());
45 return false; 47 return false;
46 } 48 }
47 49
48 rev_service_ = ref.release(); 50 rev_service_ = ref.release();
49 51
50 NaClLog(4, "ReverseSocket::StartService: invoking ConnectAndSpawnHandler\n"); 52 NaClLog(4, "ReverseSocket::StartService: invoking ConnectAndSpawnHandler\n");
51 if (0 != (*NACL_VTBL(NaClSimpleRevService, rev_service_)-> 53 if (0 != (*NACL_VTBL(NaClSimpleRevService, rev_service_)->
52 ConnectAndSpawnHandler)(rev_service_, 54 ConnectAndSpawnHandlerCb)(rev_service_,
53 server_instance_data)) { 55 exit_cb,
56 server_instance_data)) {
54 NaClLog(4, "FAILURE: Leaving ReverseSocket::StartService\n"); 57 NaClLog(4, "FAILURE: Leaving ReverseSocket::StartService\n");
55 return false; 58 return false;
56 } 59 }
57 // Handler thread has its own reference to rev_service_.get(), so 60 // Handler thread has its own reference to rev_service_.get(), so
58 // our Dtor unreferencing it doesn't matter. 61 // our Dtor unreferencing it doesn't matter.
59 NaClLog(4, "Leaving ReverseSocket::StartService\n"); 62 NaClLog(4, "Leaving ReverseSocket::StartService\n");
60 return true; 63 return true;
61 } 64 }
62 65
66 bool ReverseSocket::StartService(void* server_instance_data) {
67 return StartServiceCb(NULL, server_instance_data);
68 }
69
63 } // namespace nacl 70 } // namespace nacl
OLDNEW
« no previous file with comments | « src/trusted/reverse_service/reverse_socket.h ('k') | src/trusted/service_runtime/sel_ldr.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698