From 57018c5d29fbfe7cafa6d7edc338b322bbf60e1b Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Thu, 13 Jul 2017 05:45:32 +0000 Subject: [PATCH] Windows: unbuffered stdout output On Linux and OS X, we use line-buffered output for stdout. Unfortunately, on Windows setvbuf with _IOLBF is ignored, instead fully-buffered output is used, see https://docs.microsoft.com/de-de/cpp/c-runtime-library/reference/setvbuf So, we use unbuffered mode for stdout on Windows, as otherwise long-running tasks can make it seem as if PRISM hangs. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12011 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/prism/PrismNative.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/prism/src/prism/PrismNative.cc b/prism/src/prism/PrismNative.cc index daf8fd29..634cb047 100644 --- a/prism/src/prism/PrismNative.cc +++ b/prism/src/prism/PrismNative.cc @@ -197,7 +197,11 @@ JNIEXPORT jint JNICALL Java_prism_PrismNative_PN_1SetWorkingDirectory(JNIEnv *en JNIEXPORT jlong __jlongpointer JNICALL Java_prism_PrismNative_PN_1GetStdout(JNIEnv *env, jclass cls) { +#ifdef _WIN32 + setvbuf(stdout, NULL, _IONBF, 0); +#else setvbuf(stdout, NULL, _IOLBF, 1024); +#endif return ptr_to_jlong(stdout); }