Merge "adb: Mask SIGTTIN so that I/O works when backgrounded." am: 69ccb9532c am: 04c64dba9f
am: ba4087edde
* commit 'ba4087edde99cf3dc2d6fd20c363c3962283087d':
adb: Mask SIGTTIN so that I/O works when backgrounded.
diff --git a/adb/commandline.cpp b/adb/commandline.cpp
index d128df7..d996896 100644
--- a/adb/commandline.cpp
+++ b/adb/commandline.cpp
@@ -39,6 +39,7 @@
#include <base/strings.h>
#if !defined(_WIN32)
+#include <signal.h>
#include <termios.h>
#include <unistd.h>
#endif
@@ -440,6 +441,14 @@
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);