ExternalStream.st
changeset 14760 3cd759eef99f
parent 14753 9545fe46a30c
child 14774 788d94977e4e
child 18026 fa8a879502cb
--- a/ExternalStream.st	Wed Feb 06 16:57:06 2013 +0100
+++ b/ExternalStream.st	Wed Feb 06 17:02:24 2013 +0100
@@ -3079,42 +3079,45 @@
      || (__INST(handleType) == @symbol(filePointer))
      || (__INST(handleType) == @symbol(socketFilePointer))
      || (__INST(handleType) == @symbol(pipeFilePointer))) {
-	OBJ fp;
-	FILEPOINTER f;
-
-	if ((fp = __INST(handle)) != nil) {
-	    f = __FILEVal(fp);
+        OBJ fp;
+        FILEPOINTER f;
+
+        if ((fp = __INST(handle)) != nil) {
+            f = __FILEVal(fp);
 #ifdef WIN32
-	    __threadErrno = 0;
-	    ret = __STX_API_NOINT_CALL1( "FlushFileBuffers", FlushFileBuffers, _get_osfhandle(fileno(f)));
-	    if (ret) {
-		RETURN (self);
-	    }
+            __threadErrno = 0;
+            ret = __STX_API_NOINT_CALL1( "FlushFileBuffers", FlushFileBuffers, _get_osfhandle(fileno(f)));
+            if (ret) {
+                RETURN (self);
+            }
 #else
 
-	    __BEGIN_INTERRUPTABLE__
-	    do {
-		__threadErrno = 0;
-		ret = fdatasync(fileno(f));
-	    } while ((ret < 0) && (__threadErrno == EINTR));
-	    __END_INTERRUPTABLE__
-
-	    if (ret >= 0) {
-		RETURN (self);
-	    }
+            __BEGIN_INTERRUPTABLE__
+            do {
+                __threadErrno = 0;
+                ret = fdatasync(fileno(f));
+            } while ((ret < 0) && (__threadErrno == EINTR));
+            __END_INTERRUPTABLE__
+
+            if (ret >= 0) {
+                RETURN (self);
+            }
 #endif /* ! WIN32 */
-	    __INST(lastErrorNumber) = __mkSmallInteger(__threadErrno);
-	}
+            __INST(lastErrorNumber) = __mkSmallInteger(__threadErrno);
+        }
     }
 #endif /* ! __openVMS__ */
 %}.
     lastErrorNumber notNil ifTrue:[^ self ioError].
     handle isNil ifTrue:[^ self errorNotOpen].
 
+    "if notdef HAS_DATASYNC, fall back"
+    self sync.
+
     "
-	|f|
-	f := 'x' asFilename writeStream.
-	f nextPutAll:'hallo'; sync; syncData; close
+        |f|
+        f := 'x' asFilename writeStream.
+        f nextPutAll:'hallo'; sync; syncData; close
     "
 !
 
@@ -5728,11 +5731,11 @@
 !ExternalStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.358 2013-02-05 15:31:46 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.359 2013-02-06 16:02:24 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.358 2013-02-05 15:31:46 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.359 2013-02-06 16:02:24 stefan Exp $'
 ! !