aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test/async_ports_SUITE_data/cport.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2014-08-05 18:04:46 +0200
committerRickard Green <[email protected]>2014-08-06 15:47:28 +0200
commitcde6c2e042834d66649308093d5522c1a2001949 (patch)
treef265470037ddbe08bd0da1a915076b258c880484 /erts/emulator/test/async_ports_SUITE_data/cport.c
parentace34ce01c9378525d024246c7d76ab01add4a8d (diff)
downloadotp-cde6c2e042834d66649308093d5522c1a2001949.tar.gz
otp-cde6c2e042834d66649308093d5522c1a2001949.tar.bz2
otp-cde6c2e042834d66649308093d5522c1a2001949.zip
Fix build of test port program
Diffstat (limited to 'erts/emulator/test/async_ports_SUITE_data/cport.c')
-rw-r--r--erts/emulator/test/async_ports_SUITE_data/cport.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/erts/emulator/test/async_ports_SUITE_data/cport.c b/erts/emulator/test/async_ports_SUITE_data/cport.c
index 179cdc4b8b..033aff382a 100644
--- a/erts/emulator/test/async_ports_SUITE_data/cport.c
+++ b/erts/emulator/test/async_ports_SUITE_data/cport.c
@@ -1,9 +1,13 @@
#include <stdlib.h>
#include <stdio.h>
-#include <malloc.h>
#include <errno.h>
#include <string.h>
-#include <unistd.h>
+#ifdef __WIN32__
+# include "windows.h"
+# include "winbase.h"
+#else
+# include <unistd.h>
+#endif
typedef unsigned char byte;
@@ -53,13 +57,25 @@ int write_exact(byte *buf, int len)
return len;
}
+byte static_buf[31457280]; // 30 mb
+
int main(int argc, char **argv) {
int sleep_time = atoi(argv[1]);
int fn, arg, res;
- byte *buf = malloc(31457280); // 30 mb
+ byte *buf = &static_buf[0];
int len = 0;
+ if (sleep_time <= 0)
+ sleep_time = 0;
+#ifdef __WIN32__
+ else
+ sleep_time = ((sleep_time - 1) / 1000) + 1; /* Milli seconds */
+#endif
while ((len = read_cmd(buf)) > 0) {
+#ifdef __WIN32__
+ Sleep((DWORD) sleep_time);
+#else
usleep(sleep_time);
+#endif
write_cmd(buf, len);
}
}