chiark / gitweb /
debugging for thing that crashed
authorIan Jackson <ian@chiark.greenend.org.uk>
Sat, 15 May 2010 00:48:36 +0000 (01:48 +0100)
committerIan Jackson <ian@chiark.greenend.org.uk>
Sat, 15 May 2010 00:48:36 +0000 (01:48 +0100)
backends/innduct.c

index 3c746c3ef09cd8632f1a6162e5d474124893e48b..445157da1527c16fe557d2da91b97ae65cf78ae6 100644 (file)
@@ -2206,10 +2206,12 @@ static void *tailing_rable_call_time(oop_source *loop, struct timeval tv,
    * on_cancel which will cancel this callback */
   InputFile *ipf= user;
 
    * on_cancel which will cancel this callback */
   InputFile *ipf= user;
 
+  dbg("**TRACT** ipf=%p called",ipf);
   if (!ipf->fake_readable) return OOP_CONTINUE;
 
   /* we just keep calling readable until our caller (oop_rd)
    * has called try_read, and try_read has found EOF so given EAGAIN */
   if (!ipf->fake_readable) return OOP_CONTINUE;
 
   /* we just keep calling readable until our caller (oop_rd)
    * has called try_read, and try_read has found EOF so given EAGAIN */
+  dbg("**TRACT** ipf=%p reschedule",ipf);
   loop->on_time(loop, OOP_TIME_NOW, tailing_rable_call_time, ipf);
 
   return ipf->readable_callback(loop, &ipf->readable,
   loop->on_time(loop, OOP_TIME_NOW, tailing_rable_call_time, ipf);
 
   return ipf->readable_callback(loop, &ipf->readable,
@@ -2218,13 +2220,17 @@ static void *tailing_rable_call_time(oop_source *loop, struct timeval tv,
 
 static void tailing_on_cancel(struct oop_readable *rable) {
   InputFile *ipf= (void*)rable;
 
 static void tailing_on_cancel(struct oop_readable *rable) {
   InputFile *ipf= (void*)rable;
+  dbg("**TOR** ipf=%p on_cancel",ipf);
 
   if (ipf->filemon) filemon_stop(ipf);
 
   if (ipf->filemon) filemon_stop(ipf);
+  dbg("**TRACT** ipf=%p cancel",ipf);
   loop->cancel_time(loop, OOP_TIME_NOW, tailing_rable_call_time, ipf);
   ipf->readable_callback= 0;
 }
 
 static void tailing_make_readable(InputFile *ipf) {
   loop->cancel_time(loop, OOP_TIME_NOW, tailing_rable_call_time, ipf);
   ipf->readable_callback= 0;
 }
 
 static void tailing_make_readable(InputFile *ipf) {
+  dbg("**TRACT** ipf=%p makereadable rcb=%p",ipf,
+      (void*)ipf?ipf->readable_callback:0);
   if (!ipf || !ipf->readable_callback) /* so callers can be naive */
     return;
   ipf->fake_readable= 1;
   if (!ipf || !ipf->readable_callback) /* so callers can be naive */
     return;
   ipf->fake_readable= 1;
@@ -2234,6 +2240,7 @@ static void tailing_make_readable(InputFile *ipf) {
 static int tailing_on_readable(struct oop_readable *rable,
                                oop_readable_call *cb, void *user) {
   InputFile *ipf= (void*)rable;
 static int tailing_on_readable(struct oop_readable *rable,
                                oop_readable_call *cb, void *user) {
   InputFile *ipf= (void*)rable;
+  dbg("**TOR** ipf=%p on_readable",ipf);
 
   tailing_on_cancel(rable);
   ipf->readable_callback= cb;
 
   tailing_on_cancel(rable);
   ipf->readable_callback= cb;
@@ -2267,6 +2274,7 @@ static ssize_t tailing_try_read(struct oop_readable *rable, void *buffer,
        abort();
       }
     }
        abort();
       }
     }
+    dbg("**TOR** ipf=%p try_read r=%d",ipf,r);
     return r;
   }
 }
     return r;
   }
 }