diff --git a/sources/JadeDebugger.cls b/sources/JadeDebugger.cls index 73eb83db..45e3a38a 100644 --- a/sources/JadeDebugger.cls +++ b/sources/JadeDebugger.cls @@ -376,7 +376,7 @@ reportError: gsError (debugger := self debuggerFor: gsError processOop) notNil ifTrue: [debugger getProcessList; update. - Processor activeProcess terminate. + Processor activeProcess kill. self error: 'We should never get here!!']. (#(2709 6005) includes: gsError errorReport number) ifTrue: [^self openDebuggerOnException: gsError]. diff --git a/sources/JadePresenter.cls b/sources/JadePresenter.cls index 10c9ad05..7d1597c9 100644 --- a/sources/JadePresenter.cls +++ b/sources/JadePresenter.cls @@ -340,19 +340,13 @@ transactionModeValueHolder waitForAnswer: thingThatCanAnswer | theAnswer deferredValue | deferredValue := [thingThatCanAnswer answer] deferredValue. - [deferredValue hasValue] whileFalse: - [| loop | - loop := - [SessionManager inputState - loopWhile: [deferredValue hasValue not and: [thingThatCanAnswer isDeafObject not]]] - fork. - (Delay forMilliseconds: 1) wait. - [loop isAlive] whileTrue: - [thingThatCanAnswer isDeafObject - ifTrue: - [loop terminate. - ^deferredValue hasValue ifTrue: [deferredValue value] ifFalse: [nil]]. - (Delay forMilliseconds: 1) wait]]. + [deferredValue hasValue not and: [thingThatCanAnswer isDeafObject not]] whileTrue: + [| sync | + sync := ModalMsgLoop new. + + [(Delay forMilliseconds: 1) wait. + sync signal] fork. + sync wait]. theAnswer := [deferredValue value] on: Error do: [:ex | diff --git a/sources/JadeiteDebugger.cls b/sources/JadeiteDebugger.cls index 93c3b32e..e45a2032 100644 --- a/sources/JadeiteDebugger.cls +++ b/sources/JadeiteDebugger.cls @@ -392,7 +392,7 @@ methodValueChanged self displayUncompilableSourceIn: codePane documentPresenter! onCloseRequested: boolValueHolder - self isOkayToChangeFrame ifFalse: [^self]. + self isOkayToChangeFrame ifFalse: [^boolValueHolder value: false]. super onCloseRequested: boolValueHolder! onIdleEntered diff --git a/sources/JadeiteDebuggerDataCuratorTestCase.cls b/sources/JadeiteDebuggerDataCuratorTestCase.cls index 4ab7b3d7..17740c1e 100644 --- a/sources/JadeiteDebuggerDataCuratorTestCase.cls +++ b/sources/JadeiteDebuggerDataCuratorTestCase.cls @@ -48,10 +48,8 @@ closeDebuggers JadeiteMethodListBrowser allInstances do: [:browser | self assert: (browser view isKindOf: DeafObject)]. JadeiteBrowser allInstances do: [:browser | self assert: (browser view isKindOf: DeafObject)]. - JadeiteDebugger allInstances do: - [:theDebugger | - (theDebugger view isKindOf: DeafObject) ifFalse: [(Delay forMilliseconds: 50) wait]. - self assert: (theDebugger view isKindOf: DeafObject)]. + JadeiteDebugger allInstances + do: [:theDebugger | (theDebugger view isKindOf: DeafObject) ifFalse: [(Delay forMilliseconds: 50) wait]]. MemoryManager current collectGarbage. (Delay forMilliseconds: 50) wait. self purgeInstances: JadeiteBrowser. diff --git a/sources/JadeiteDebuggerTestCase.cls b/sources/JadeiteDebuggerTestCase.cls index 99660b2f..c278cb84 100644 --- a/sources/JadeiteDebuggerTestCase.cls +++ b/sources/JadeiteDebuggerTestCase.cls @@ -1296,6 +1296,7 @@ test_loginButtonEnablementAfterDebug [GciSession current ifNotNil: [:sess | sess logout]. query := self closeJadeiteLoginShells. + JadeiteLoginShell allInstances do:[:loginShell | self destroy: loginShell]. shell := JadeiteLoginShell show position: 80 @ 20. "make sure we're logging in as right user" shell userIDPresenter value: user.