[Openmcl-devel] CCL64 crash

Leo sdl.web at gmail.com
Sat Feb 6 05:49:04 PST 2010


On 2010-02-06 13:10 +0000, Gary Byers wrote:
> Well, I'm glad that this doesn't have anything at all to do with
> CCL ...
>
> Apple releases the source to the file that contains __CFInitialize():
>
> <http://www.opensource.apple.com/source/CF/CF-550.13/CFRuntime.c>
>
> That definition's a little ways past the middle of the file, and contains:
>
> 	if (!pthread_main_np()) HALT;	// CoreFoundation must be initialized on the main thread
>
> In other words, "if the CoreFoundation library's being initialized - perhaps
> as a result of that library being loaded as a dependent of some other library -
> and the current thread is not the initial thread, waste everyone's time by
> executing a breakpoint instruction."  As I understand it, that check was
> introduced in Snow Leopard.
>
> (What did people do before Google ?)
>
> You can force CoreFoundation to be initialized on the main thread by doing:
>
> (let* ((s (make-semaphore)))
>   (process-interrupt
>     ccl::*initial-process*
>     (lambda ()
>       (open-shared-library
>        "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation")
>       (signal-semaphore s)))
>    (wait-on-semaphore s))
>
> and then doing
>
> (asdf::oos ...)   ; load the rest of the system

Many thanks. This workaround works great.

I have found that it is due to the loading of AquaTerm. i.e.

(open-shared-library
"/Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm") crashes
ccl64 too. I guess a proper fix needs to be done in Aquaterm. Any
pointer how that may be done? Sorry this is off-topic.

> At times like this, I want to open the window and shout "It's the world's
> most advanced operating system!"; sadly, the neighbors are heavily armed
> and have told me repeatedly that they're tired of being awakened by this
> news.


Many many thanks.

Leo




More information about the Openmcl-devel mailing list