From 2aa0d3abb41195f2b86dc7c385c34a55618ac90e Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Thu, 13 Apr 2017 12:45:55 -0700 Subject: minadbd: switch adb_thread_create to std::thread. Test: treehugger Change-Id: I7edcb13eb1fc6d4f36f5a764a1b647fbf9cd063e --- minadbd/minadbd_services.cpp | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp index 426d982eb..a6aa321ca 100644 --- a/minadbd/minadbd_services.cpp +++ b/minadbd/minadbd_services.cpp @@ -21,25 +21,13 @@ #include #include +#include + #include "adb.h" #include "fdevent.h" #include "fuse_adb_provider.h" #include "sysdeps.h" -typedef struct stinfo stinfo; - -struct stinfo { - void (*func)(int fd, void *cookie); - int fd; - void *cookie; -}; - -void service_bootstrap_func(void* x) { - stinfo* sti = reinterpret_cast(x); - sti->func(sti->fd, sti->cookie); - free(sti); -} - static void sideload_host_service(int sfd, void* data) { char* args = reinterpret_cast(data); int file_size; @@ -66,19 +54,7 @@ static int create_service_thread(void (*func)(int, void *), void *cookie) { return -1; } - stinfo* sti = static_cast(malloc(sizeof(stinfo))); - if(sti == 0) fatal("cannot allocate stinfo"); - sti->func = func; - sti->cookie = cookie; - sti->fd = s[1]; - - if (!adb_thread_create(service_bootstrap_func, sti)) { - free(sti); - adb_close(s[0]); - adb_close(s[1]); - printf("cannot create service thread\n"); - return -1; - } + std::thread([s, func, cookie]() { func(s[1], cookie); }).detach(); VLOG(SERVICES) << "service thread started, " << s[0] << ":" << s[1]; return s[0]; -- cgit v1.2.3