UnixOperatingSystem.st
changeset 16464 a695c2af61fd
parent 16417 88b61e714dd0
child 16481 cbecb6681a12
--- a/UnixOperatingSystem.st	Fri May 16 09:00:05 2014 +0200
+++ b/UnixOperatingSystem.st	Fri May 16 09:02:44 2014 +0200
@@ -11108,24 +11108,23 @@
     |inputSema hasData wasBlocked|
 
     fd isNil ifTrue:[^ self error:#errorNotOpen].
+    self canReadWithoutBlocking ifTrue:[
+        ^ false.
+    ].
 
     wasBlocked := OperatingSystem blockInterrupts.
-    hasData := self canReadWithoutBlocking.
-    hasData ifFalse:[
-	inputSema := Semaphore new name:'readWait'.
-	[
-	    timeout notNil ifTrue:[
-		Processor signal:inputSema afterMilliseconds:timeout
-	    ].
-	    Processor signal:inputSema onInput:fd.
-	    Processor activeProcess state:#ioWait.
-	    inputSema wait.
-	    Processor disableSemaphore:inputSema.
-	    hasData := self canReadWithoutBlocking.
-	] ifCurtailed:[
-	    Processor disableSemaphore:inputSema.
-	    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
-	]
+    inputSema := Semaphore new name:'readWait'.
+    [
+        timeout notNil ifTrue:[
+            Processor signal:inputSema afterMilliseconds:timeout
+        ].
+        Processor signal:inputSema onInput:fd.
+        Processor activeProcess state:#ioWait.
+        inputSema wait.
+        hasData := self canReadWithoutBlocking.
+    ] ifCurtailed:[
+        Processor disableSemaphore:inputSema.
+        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
     ].
     wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
     ^ hasData not
@@ -11141,24 +11140,23 @@
     |outputSema canWrite wasBlocked|
 
     fd isNil ifTrue:[^ self error:#errorNotOpen].
+    self canWriteWithoutBlocking ifTrue:[
+        ^ false.
+    ].
 
     wasBlocked := OperatingSystem blockInterrupts.
-    canWrite := self canWriteWithoutBlocking.
-    canWrite ifFalse:[
-	outputSema := Semaphore new name:'writeWait'.
-	[
-	    timeout notNil ifTrue:[
-		Processor signal:outputSema afterMilliseconds:timeout
-	    ].
-	    Processor signal:outputSema onOutput:fd.
-	    Processor activeProcess state:#ioWait.
-	    outputSema wait.
-	    Processor disableSemaphore:outputSema.
-	    canWrite := self canWriteWithoutBlocking.
-	] ifCurtailed:[
-	    Processor disableSemaphore:outputSema.
-	    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
-	]
+    outputSema := Semaphore new name:'writeWait'.
+    [
+        timeout notNil ifTrue:[
+            Processor signal:outputSema afterMilliseconds:timeout
+        ].
+        Processor signal:outputSema onOutput:fd.
+        Processor activeProcess state:#ioWait.
+        outputSema wait.
+        canWrite := self canWriteWithoutBlocking.
+    ] ifCurtailed:[
+        Processor disableSemaphore:outputSema.
+        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
     ].
     wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
     ^ canWrite not
@@ -13272,11 +13270,11 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.361 2014-05-11 14:06:09 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.362 2014-05-16 07:02:44 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.361 2014-05-11 14:06:09 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.362 2014-05-16 07:02:44 stefan Exp $'
 ! !