/*
- * $Id: dsi_write.c,v 1.3.14.1 2003-10-17 00:01:14 didg Exp $
+ * $Id: dsi_write.c,v 1.3.14.2 2004-05-04 14:26:14 didg Exp $
*
* Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
* All rights reserved. See COPYRIGHT.
* for arbitrary buffers. */
size_t dsi_writeinit(DSI *dsi, void *buf, const size_t buflen)
{
+#ifdef TIMER_ON_READ
const struct itimerval none = {{0, 0}, {0, 0}};
+#endif
size_t len, header;
/* figure out how much data we have. do a couple checks for 0
} else
len = 0;
+#ifdef TIMER_ON_READ
/* deal with signals. i'm doing it this way to ensure that we don't
* get confused if a writeflush on zero remaining data is, for some
* reason, needed. */
sigprocmask(SIG_BLOCK, &dsi->sigblockset, &dsi->oldset);
+ dsi->sigblocked = 1;
setitimer(ITIMER_REAL, &none, &dsi->savetimer);
+#endif
return len;
}
dsi->datasize -= length;
return length;
}
-
+#ifdef TIMER_ON_READ
setitimer(ITIMER_REAL, &dsi->savetimer, NULL);
sigprocmask(SIG_SETMASK, &dsi->oldset, NULL);
+#endif
return 0;
}
else
break;
}
-
+#ifdef TIMER_ON_READ
setitimer(ITIMER_REAL, &dsi->savetimer, NULL);
sigprocmask(SIG_SETMASK, &dsi->oldset, NULL);
+#endif
}