[project @ 2002-01-29 06:15:03 by sof]
[ghc-hetmet.git] / ghc / rts / RtsUtils.c
index cc90b39..0e302a7 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsUtils.c,v 1.21 2001/08/29 14:55:58 sewardj Exp $
+ * $Id: RtsUtils.c,v 1.23 2001/10/31 10:30:29 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -115,7 +115,11 @@ stgReallocWords (void *p, int n, char *msg)
 void *
 stgCallocBytes (int n, int m, char *msg)
 {
-  return stgMallocBytes(n*m, msg);
+  int   i;
+  int   sz = n * m;
+  char* p  = stgMallocBytes(sz, msg);
+  for (i = 0; i < sz; i++) p[i] = 0;
+  return p;
 }
 
 void 
@@ -234,6 +238,18 @@ resetNonBlockingFd(int fd)
 #endif
 }
 
+void
+setNonBlockingFd(int fd)
+{
+  long fd_flags;
+
+#if !defined(mingw32_TARGET_OS)
+  /* clear the non-blocking flag on this file descriptor */
+  fd_flags = fcntl(fd, F_GETFL);
+  fcntl(fd, F_SETFL, fd_flags | O_NONBLOCK);
+#endif
+}
+
 static ullong startTime = 0;
 
 /* used in a parallel setup */