summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxsys/threads.c
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-12-21 10:01:27 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-12-21 10:01:27 +0000
commitbbde600decc1970f1507828fce5ba22c0948519b (patch)
tree03f9dd5aadd4c8f938d554b4a02d8fbae405dcac /src/libs/zbxsys/threads.c
parent738cd691cc0d40e97db910ae0453014b6c703efc (diff)
downloadzabbix-bbde600decc1970f1507828fce5ba22c0948519b.tar.gz
zabbix-bbde600decc1970f1507828fce5ba22c0948519b.tar.xz
zabbix-bbde600decc1970f1507828fce5ba22c0948519b.zip
- fixed printing of stdout/stderr (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3622 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxsys/threads.c')
-rw-r--r--src/libs/zbxsys/threads.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/libs/zbxsys/threads.c b/src/libs/zbxsys/threads.c
index 6501d5e1..c659d4aa 100644
--- a/src/libs/zbxsys/threads.c
+++ b/src/libs/zbxsys/threads.c
@@ -24,6 +24,31 @@
/******************************************************************************
* *
+ * Function: zbx_fork *
+ * *
+ * Purpose: Flush stdout and stderr before forking *
+ * *
+ * Parameters: *
+ * *
+ * Return value: same as system fork function *
+ * *
+ * Author: Eugene Grigorjev *
+ * *
+ * Comments: *
+ * Use this function instead of system fork function! *
+ * *
+ ******************************************************************************/
+#if !defined(_WINDOWS)
+int zbx_fork()
+{
+ fflush(stdout);
+ fflush(stderr);
+ return fork();
+}
+#endif
+
+/******************************************************************************
+ * *
* Function: zbx_thread_start *
* *
* Purpose: Start the handled function as "thread" *
@@ -56,7 +81,7 @@ ZBX_THREAD_HANDLE zbx_thread_start(ZBX_THREAD_ENTRY_POINTER(handler), void *args
#else /* not _WINDOWS */
- thread = fork();
+ thread = zbx_fork();
if(thread == 0) /* child process */
{