|
From: Nikodemus S. <nik...@ra...> - 2012-04-26 15:38:08
|
Thanks for comments. Take two attached, and at: https://github.com/nikodemus/SBCL/commit/ed4e592fc0f79f95c2e5deef05c8dce946b141a6 Essential change to previous version: EXIT :ABORT NIL will call TERMINATE-THREAD on all other threads, and then wait for :TIMEOUT seconds for those threads to actually finish (defaulting to 60.) Re. recursive exit -> :abort t. This seemed the simplest way to ensure things remain sane. It would be possible to provide more complex handling, but I fear it would be tricky to keep documentation and implementation in synch, and I'm reluctant to get too clever in absence of use-cases. Same applies to error handling during exit. There is actually a mechanism for it, but I left it undocumented in the interest of simplicity -- if it turns out people need it, we can see if the current mechanism covers their uses cases, and then document it. Cheers, -- Nikodemus |