diff -r 6900d60cac58 -r 3cd759eef99f ExternalStream.st --- 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 $' ! !