use genericSignal as parent of ErrorSignal.
authorClaus Gittinger <cg@exept.de>
Wed, 08 Oct 1997 13:00:08 +0200
changeset 3005 8fe533ca0764
parent 3004 220af5090ec2
child 3006 b3530950854a
use genericSignal as parent of ErrorSignal.
Object.st
--- a/Object.st	Wed Oct 08 12:59:02 1997 +0200
+++ b/Object.st	Wed Oct 08 13:00:08 1997 +0200
@@ -170,97 +170,104 @@
     "called only once - initialize signals"
 
     ErrorSignal isNil ifTrue:[
-	ErrorSignal := (Signal new) mayProceed:true.
-	ErrorSignal nameClass:self message:#errorSignal.
-	ErrorSignal notifierString:'error encountered'.
-
-	HaltSignal := ErrorSignal newSignalMayProceed:true.
-	HaltSignal nameClass:self message:#haltSignal.
-	HaltSignal notifierString:'halt encountered'.
-
-	MessageNotUnderstoodSignal := ErrorSignal newSignalMayProceed:true.
-	MessageNotUnderstoodSignal nameClass:self message:#messageNotUnderstoodSignal.
-	MessageNotUnderstoodSignal notifierString:'message not understood'.
-
-	PrimitiveFailureSignal := ErrorSignal newSignalMayProceed:true.
-	PrimitiveFailureSignal nameClass:self message:#primitiveFailureSignal.
-	PrimitiveFailureSignal notifierString:'primitive failed'.
-
-	InternalErrorSignal := ErrorSignal newSignalMayProceed:false.
-	InternalErrorSignal nameClass:self message:#internalError.
-	InternalErrorSignal notifierString:'VM internal error: '.
+        "/ have a chicken & egg problem here;
+        "/ signal wants object to be initialized,
+        "/ Object needs the genericSignal from Signal.
+        "/ So, make certain that on exists here.
+
+        Signal initGenericSignal.
+
+        ErrorSignal := (Signal genericSignal) mayProceed:true.
+        ErrorSignal nameClass:self message:#errorSignal.
+        ErrorSignal notifierString:'error encountered'.
+
+        HaltSignal := ErrorSignal newSignalMayProceed:true.
+        HaltSignal nameClass:self message:#haltSignal.
+        HaltSignal notifierString:'halt encountered'.
+
+        MessageNotUnderstoodSignal := ErrorSignal newSignalMayProceed:true.
+        MessageNotUnderstoodSignal nameClass:self message:#messageNotUnderstoodSignal.
+        MessageNotUnderstoodSignal notifierString:'message not understood'.
+
+        PrimitiveFailureSignal := ErrorSignal newSignalMayProceed:true.
+        PrimitiveFailureSignal nameClass:self message:#primitiveFailureSignal.
+        PrimitiveFailureSignal notifierString:'primitive failed'.
+
+        InternalErrorSignal := ErrorSignal newSignalMayProceed:false.
+        InternalErrorSignal nameClass:self message:#internalError.
+        InternalErrorSignal notifierString:'VM internal error: '.
 
 "/        UserInterruptSignal := ErrorSignal newSignalMayProceed:true.
-	UserInterruptSignal := (Signal new) mayProceed:true.
-	UserInterruptSignal nameClass:self message:#userInterruptSignal.
-	UserInterruptSignal notifierString:'user Interrupt'.
+        UserInterruptSignal := (Signal new) mayProceed:true.
+        UserInterruptSignal nameClass:self message:#userInterruptSignal.
+        UserInterruptSignal notifierString:'user Interrupt'.
 
 "/        RecursionInterruptSignal := ErrorSignal newSignalMayProceed:false.
-	RecursionInterruptSignal := (Signal new) mayProceed:true.
-	RecursionInterruptSignal nameClass:self message:#recursionInterruptSignal.
-	RecursionInterruptSignal notifierString:'recursion limit reached'.
-
-	ExceptionInterruptSignal := ErrorSignal newSignalMayProceed:true.
-	ExceptionInterruptSignal nameClass:self message:#exceptionInterruptSignal.
-	ExceptionInterruptSignal notifierString:'exception Interrupt'.
-
-	SubscriptOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
-	SubscriptOutOfBoundsSignal nameClass:self message:#subscriptOutOfBoundsSignal.
-	SubscriptOutOfBoundsSignal notifierString:'subscript out of bounds: '.
-
-	ElementOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
-	ElementOutOfBoundsSignal nameClass:self message:#elementOutOfBoundsSignal.
-	ElementOutOfBoundsSignal notifierString:'element not appropriate or out of bounds'.
-
-	NotFoundSignal := ErrorSignal newSignalMayProceed:true.
-	NotFoundSignal nameClass:self message:#notFoundSignal.
-	NotFoundSignal notifierString:'no such element'.
-
-	KeyNotFoundSignal := ErrorSignal newSignalMayProceed:true.
-	KeyNotFoundSignal nameClass:self message:#keyNotFoundSignal.
-	KeyNotFoundSignal notifierString:'no such key: '.
-
-	NonIntegerIndexSignal := ErrorSignal newSignalMayProceed:false.
-	NonIntegerIndexSignal nameClass:self message:#nonIntegerIndexSignal.
-	NonIntegerIndexSignal notifierString:'index must be integer'.
-
-	UserNotificationSignal := QuerySignal new.
-	UserNotificationSignal nameClass:self message:#userNotificationSignal.
-	UserNotificationSignal notifierString:'user notifiaction wanted'.
-
-	InformationSignal := UserNotificationSignal newSignalMayProceed:true.
-	InformationSignal nameClass:self message:#informationSignal.
-	InformationSignal notifierString:'information'.
-
-	WarningSignal := UserNotificationSignal newSignalMayProceed:true.
-	WarningSignal nameClass:self message:#warnungSignal.
-	WarningSignal notifierString:'warning'.
-
-	ActivityNotificationSignal := UserNotificationSignal newSignalMayProceed:true.
-	ActivityNotificationSignal nameClass:self message:#activityNotificationSignal.
-	ActivityNotificationSignal notifierString:'activity'.
-
-	DeepCopyErrorSignal := ErrorSignal newSignalMayProceed:true.
-	DeepCopyErrorSignal nameClass:self message:#deepCopyErrorSignal.
-	DeepCopyErrorSignal notifierString:'object cannot be deepCopy-ed'.
-
-	"
-	 AbortSignal is not a child of ErrorSignal -
-	 this would complicate abort from within a signal handler
-	"
-	AbortSignal := Signal new mayProceed:true.
-	AbortSignal nameClass:self message:#abortSignal.
-	AbortSignal notifierString:'unhandled abort signal'.
-
-	Dependencies isNil ifTrue:[
-	    Dependencies := WeakDependencyDictionary new.
-	].
-	NonWeakDependencies isNil ifTrue:[
-	    NonWeakDependencies := IdentityDictionary new.
-	].
-	SynchronizationSemaphores isNil ifTrue:[
-	    SynchronizationSemaphores := WeakIdentityDictionary new.
-	].
+        RecursionInterruptSignal := (Signal new) mayProceed:true.
+        RecursionInterruptSignal nameClass:self message:#recursionInterruptSignal.
+        RecursionInterruptSignal notifierString:'recursion limit reached'.
+
+        ExceptionInterruptSignal := ErrorSignal newSignalMayProceed:true.
+        ExceptionInterruptSignal nameClass:self message:#exceptionInterruptSignal.
+        ExceptionInterruptSignal notifierString:'exception Interrupt'.
+
+        SubscriptOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
+        SubscriptOutOfBoundsSignal nameClass:self message:#subscriptOutOfBoundsSignal.
+        SubscriptOutOfBoundsSignal notifierString:'subscript out of bounds: '.
+
+        ElementOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
+        ElementOutOfBoundsSignal nameClass:self message:#elementOutOfBoundsSignal.
+        ElementOutOfBoundsSignal notifierString:'element not appropriate or out of bounds'.
+
+        NotFoundSignal := ErrorSignal newSignalMayProceed:true.
+        NotFoundSignal nameClass:self message:#notFoundSignal.
+        NotFoundSignal notifierString:'no such element'.
+
+        KeyNotFoundSignal := ErrorSignal newSignalMayProceed:true.
+        KeyNotFoundSignal nameClass:self message:#keyNotFoundSignal.
+        KeyNotFoundSignal notifierString:'no such key: '.
+
+        NonIntegerIndexSignal := ErrorSignal newSignalMayProceed:false.
+        NonIntegerIndexSignal nameClass:self message:#nonIntegerIndexSignal.
+        NonIntegerIndexSignal notifierString:'index must be integer'.
+
+        UserNotificationSignal := QuerySignal new.
+        UserNotificationSignal nameClass:self message:#userNotificationSignal.
+        UserNotificationSignal notifierString:'user notifiaction wanted'.
+
+        InformationSignal := UserNotificationSignal newSignalMayProceed:true.
+        InformationSignal nameClass:self message:#informationSignal.
+        InformationSignal notifierString:'information'.
+
+        WarningSignal := UserNotificationSignal newSignalMayProceed:true.
+        WarningSignal nameClass:self message:#warnungSignal.
+        WarningSignal notifierString:'warning'.
+
+        ActivityNotificationSignal := UserNotificationSignal newSignalMayProceed:true.
+        ActivityNotificationSignal nameClass:self message:#activityNotificationSignal.
+        ActivityNotificationSignal notifierString:'activity'.
+
+        DeepCopyErrorSignal := ErrorSignal newSignalMayProceed:true.
+        DeepCopyErrorSignal nameClass:self message:#deepCopyErrorSignal.
+        DeepCopyErrorSignal notifierString:'object cannot be deepCopy-ed'.
+
+        "
+         AbortSignal is not a child of ErrorSignal -
+         this would complicate abort from within a signal handler
+        "
+        AbortSignal := Signal genericSignal newSignalMayProceed:true.
+        AbortSignal nameClass:self message:#abortSignal.
+        AbortSignal notifierString:'unhandled abort signal'.
+
+        Dependencies isNil ifTrue:[
+            Dependencies := WeakDependencyDictionary new.
+        ].
+        NonWeakDependencies isNil ifTrue:[
+            NonWeakDependencies := IdentityDictionary new.
+        ].
+        SynchronizationSemaphores isNil ifTrue:[
+            SynchronizationSemaphores := WeakIdentityDictionary new.
+        ].
     ].
 
     "/ initialize InfoPrinting to the VM's infoPrint setting
@@ -269,8 +276,8 @@
 
     "Object initialize"
 
-    "Modified: 9.1.1997 / 00:28:38 / cg"
     "Modified: 28.1.1997 / 19:38:58 / stefan"
+    "Modified: 8.10.1997 / 11:50:40 / cg"
 ! !
 
 !Object class methodsFor:'Signal constants'!
@@ -6180,6 +6187,6 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.205 1997-09-03 12:53:30 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.206 1997-10-08 11:00:08 cg Exp $'
 ! !
 Object initialize!