--- a/SerialPort.st Fri Aug 05 12:02:17 2011 +0200
+++ b/SerialPort.st Fri Aug 05 14:14:29 2011 +0200
@@ -295,9 +295,7 @@
}
%}.
self primitiveFailed.
-! !
-
-!SerialPort protectedMethodsFor:'low level'!
+!
closeFile
"low level close"
@@ -307,39 +305,39 @@
t = __INST(handle);
if (t != nil) {
- FILE *fp;
- SERIALPORT port;
-
- __INST(handle) = nil;
- fp = __FILEVal(t);
- port = PORT_FROM_FILE(fp);
+ FILE *fp;
-# ifdef xxDO_WRAP_CALLS
- { int ret;
+ __INST(handle) = nil;
+ fp = __FILEVal(t);
+#ifdef WIN32
+ {
+ int ret;
+ SERIALPORT port;
- do {
- __threadErrno = 0;
- ret = STX_C_CALL1("fclose", fclose, fp);
- } while ((ret < 0) && (__threadErrno == EINTR));
+ port = PORT_FROM_FILE(fp);
-# ifdef WIN32
- do {
- __threadErrno = 0;
- ret = STX_WSA_CALL1("CloseHandle", CloseHandle, port);
- } while ((ret < 0) && (__threadErrno == EINTR));
- CloseHandle(port);
-# endif
- }
-# else /* !DO_WRAP_CALLS */
+# ifdef xxxDO_WRAP_CALLS
+ do {
+ __threadErrno = 0;
+ ret = STX_C_CALL1("fclose", fclose, fp);
+ } while ((ret < 0) && (__threadErrno == EINTR));
- fclose(fp);
-# ifdef WIN32
- CloseHandle(port);
-# endif
-
-# endif /* !DO_WRAP_CALLS */
+ do {
+ __threadErrno = 0;
+ ret = STX_WSA_CALL1("CloseHandle", CloseHandle, port);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+# else
+ fclose(fp);
+ CloseHandle(port);
+# endif /* DO_WRAP_CALLS */
+ }
+#else
+ fclose(fp);
+#endif
}
%}
+
+ "Modified: / 05-08-2011 / 14:13:35 / cg"
! !
!SerialPort methodsFor:'opening'!
@@ -582,7 +580,9 @@
console_fprintf(stderr, "Win32OS [info]: fdopen failed\n");
errorNumber = __MKSMALLINT(errno);
errExit: ;
+# ifdef WIN32
CloseHandle(port);
+# endif
goto getOutOfhere;
}
@@ -617,7 +617,7 @@
].
].
- "Modified: / 12-02-2007 / 12:29:57 / cg"
+ "Modified: / 05-08-2011 / 14:14:08 / cg"
! !
!SerialPort methodsFor:'printing & storing'!
@@ -641,9 +641,9 @@
!SerialPort class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic2/SerialPort.st,v 1.13 2010-02-04 11:48:58 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/SerialPort.st,v 1.14 2011-08-05 12:14:29 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic2/SerialPort.st,v 1.13 2010-02-04 11:48:58 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic2/SerialPort.st,v 1.14 2011-08-05 12:14:29 cg Exp $'
! !