--- 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 $'
! !