Skip to content

Commit 7364278

Browse files
committed
for reliable SigAbort handling use the Maintainence vm exception handler ... TransactionBacklog based handler not quite as reliable at the moment
1 parent 373fb1a commit 7364278

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

bin/startSmalltalkServer

+16-11
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,22 @@ run
7272
7373
System transactionMode: #manualBegin.
7474
75-
TransactionBacklog addDefaultHandler: [:ex |
76-
"Run the abort in a lowPriority process, since we must acquire the
77-
transactionMutex."
78-
[
79-
GRPlatform current transactionMutex
80-
critical: [ GRPlatform current doAbortTransaction ].
81-
TransactionBacklog enableSignalling.
82-
] forkAt: Processor lowestPriority.
83-
].
84-
TransactionBacklog enableSignalling.
85-
75+
Exception
76+
installStaticException:
77+
[:ex :cat :num :args |
78+
"Run the abort in a lowPriority process, since we must acquire the
79+
transactionMutex."
80+
[
81+
GRPlatform current transactionMutex
82+
critical: [
83+
GRPlatform current doAbortTransaction ].
84+
System enableSignaledAbortError.
85+
] forkAt: Processor lowestPriority.
86+
]
87+
category: GemStoneError
88+
number: 6009 "#rtErrSignalAbort"
89+
subtype: nil.
90+
System enableSignaledAbortError.
8691
"This thread is needed to handle the SigAbort exception, when the primary
8792
thread is blocked. Assuming default 60 second STN_GEM_ABORT_TIMEOUT, wake
8893
up at 30 second intervals."

0 commit comments

Comments
 (0)