diff --git a/adb/commandline.cpp b/adb/commandline.cpp index bc5ba38a0..a915a3359 100644 --- a/adb/commandline.cpp +++ b/adb/commandline.cpp @@ -39,6 +39,7 @@ #include #if !defined(_WIN32) +#include #include #include #endif @@ -440,6 +441,14 @@ static void* stdin_read_thread(void* x) { adb_thread_setname("stdin reader"); +#ifndef __WIN32 + // Mask SIGTTIN in case we're in a backgrounded process + sigset_t sigset; + sigemptyset(&sigset); + sigaddset(&sigset, SIGTTIN); + pthread_sigmask(SIG_BLOCK, &sigset, nullptr); +#endif + char raw_buffer[1024]; char* buffer_ptr = raw_buffer; size_t buffer_size = sizeof(raw_buffer);