DeviceWorkstation.st
changeset 3208 2deb87a630ef
parent 3193 110bd43bc483
child 3220 e3e2f81a99df
--- a/DeviceWorkstation.st	Tue May 30 22:29:31 2000 +0200
+++ b/DeviceWorkstation.st	Tue May 30 22:31:17 2000 +0200
@@ -541,16 +541,16 @@
             theSignal raiseRequestWith:badResource errorString:msg.
         ] ifFalse:[
             theSignal raiseWith:badResource errorString:msg.
-        ].
+        ].        
     ].
 
     theDevice notNil ifTrue:[
         "/ 'broken connection' printCR.
         theDevice brokenConnection.
         p == Processor activeProcess ifTrue:[
-            "/ this is a DisplayIOTimeoutError  
+            "/ this is a DisplayIOError  
             "/ and I am running in the dispatch process
-            "/ and nobody handles theSignal
+            "/ and nobody handles theSignal, so abort the dispatcher
 
             AbortSignal raise.
         ]
@@ -4044,8 +4044,9 @@
                             Processor activeProcess setStateTo:#ioWait if:#active.
                             inputSema wait.
                         ].
-
-                        self dispatchPendingEvents.
+                        dispatching ifTrue:[
+                            self dispatchPendingEvents.
+                        ].
                     ]
                 ]
             ] valueOnUnwindDo:[
@@ -4803,8 +4804,9 @@
 brokenConnection
     "the connection to the display device was lost."
 
+    dispatching := false.
+    self emergencyCloseConnection.
     displayId := nil.
-    dispatching := false.
 
     LastActiveScreen == self ifTrue:[
         LastActiveScreen := nil.
@@ -6883,6 +6885,6 @@
 !DeviceWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.368 2000-04-03 12:42:17 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.369 2000-05-30 20:31:17 stefan Exp $'
 ! !
 DeviceWorkstation initialize!