aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/misc.c4
-rw-r--r--src/misc.h6
2 files changed, 9 insertions, 1 deletions
diff --git a/src/misc.c b/src/misc.c
index c2803a6..0bf7233 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -47,8 +47,10 @@ int try_write(int _fd, char *_buff, int _size, int _retry)
if(ret < 0)
return 1;
- else
+ else {
written += ret;
+ cntr = 0; //reset fail counter
+ }
if(++cntr > _retry)
return 1;
diff --git a/src/misc.h b/src/misc.h
index 49a3384..21b2d75 100644
--- a/src/misc.h
+++ b/src/misc.h
@@ -13,6 +13,12 @@
#include <errno.h>
#include <string.h>
+/*
+ * Try writing to _fd for _retry times. Retries are reset after every succesful write.
+ */
int try_write(int _fd, char *_buff, int _size, int _retry);
+/*
+ * Fork, exec(argc, argv) with new STDIO, return PID
+ */
pid_t fork_run(int _stdin, int _stdout, int _stderr, int argc, char* argv[]);