Skip to content

Commit

Permalink
for reliable SigAbort handling use the Maintainence vm exception hand…
Browse files Browse the repository at this point in the history
…ler ... TransactionBacklog based handler not quite as reliable at the moment
  • Loading branch information
dalehenrich committed Jun 16, 2014
1 parent 373fb1a commit 7364278
Showing 1 changed file with 16 additions and 11 deletions.
27 changes: 16 additions & 11 deletions bin/startSmalltalkServer
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,22 @@ run
System transactionMode: #manualBegin.
TransactionBacklog addDefaultHandler: [:ex |
"Run the abort in a lowPriority process, since we must acquire the
transactionMutex."
[
GRPlatform current transactionMutex
critical: [ GRPlatform current doAbortTransaction ].
TransactionBacklog enableSignalling.
] forkAt: Processor lowestPriority.
].
TransactionBacklog enableSignalling.
Exception
installStaticException:
[:ex :cat :num :args |
"Run the abort in a lowPriority process, since we must acquire the
transactionMutex."
[
GRPlatform current transactionMutex
critical: [
GRPlatform current doAbortTransaction ].
System enableSignaledAbortError.
] forkAt: Processor lowestPriority.
]
category: GemStoneError
number: 6009 "#rtErrSignalAbort"
subtype: nil.
System enableSignaledAbortError.
"This thread is needed to handle the SigAbort exception, when the primary
thread is blocked. Assuming default 60 second STN_GEM_ABORT_TIMEOUT, wake
up at 30 second intervals."
Expand Down

0 comments on commit 7364278

Please sign in to comment.