chiark / gitweb /
realtime: new -B option for turning off nonblockingness of stdin, helpful for valgrind
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sat, 8 Jan 2011 23:19:51 +0000 (23:19 +0000)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sat, 8 Jan 2011 23:19:51 +0000 (23:19 +0000)
hostside/realtime.c

index 1e01430261834e545ea923c724e97254474c79f5..2a469eaa9b24a6d85f463d22522e4e6c22c1611f 100644 (file)
@@ -342,6 +342,7 @@ void debug_count_event(const char *what) {
 #include "realtime+dflags.h"
 
 static int debug_simulate_exactly;
+static int nononblock_stdin;
 
 static void debug_user_set(const DebugSelectorAreaInfo *dsai,
                           int op, unsigned long bits) {
@@ -470,6 +471,7 @@ int main(int argc, const char **argv) {
       case 'v': picio_send_noise= atoi(arg);      arg=0; break;
       case 'm': sta_state= Sta_Manual;                   break;
       case 'V': simlog_full=1;                           break;
+      case 'B': nononblock_stdin=1;                      break;
       case 'L': logcopy_fn= arg;                  arg=0; break;
       case 'S': simulate= arg;                    arg=0; break;
       case 'D':        debug_arg_spec(arg);              arg=0; break;
@@ -506,6 +508,7 @@ int main(int argc, const char **argv) {
 
     simlog_open(logcopy_fn);
     cmdin_new(&cmdi, 0);
+    if (nononblock_stdin) oop_fd_nonblock(0,0);
 
     serial_open(device);
     r= oop_fd_nonblock(serial_fd, 1);  if (r) diee("nonblock(serial_fd,1)");