From: Zoran V. <zv...@ar...> - 2005-05-18 10:13:28
|
Am 14.05.2005 um 23:04 schrieb Daniel A. Steffen: > I have cleaned this up as discussed and backported it to core-8-4- > branch, changes from previous patches: > - added --disable-corefoundation configure option to revert to > standard unix notifier (and disable CFBundle use etc) GOOD! Because... > - added check of CoreFoundation availability to allow building > on ppc64 > - use Tiger OSSpinLock API if available instead of _spin_lock SPI > - corrected locking in Tcl_FinalizeNotifier() & > Tcl_AlertNotifier() > - corrected tsd use in Tk_MacOSXSetupTkNotifier() > > let me know if there are problems ... there are problems: Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000000 [Switching to process 8058 thread 0x2a43] 0xfffeff20 in objc_msgSend_rtp () (gdb) bt #0 0xfffeff20 in objc_msgSend_rtp () #1 0x90773bdc in CFRunLoopSourceInvalidate () #2 0x0a0cddf8 in Tcl_FinalizeNotifier (clientData=0x39af008) at ../ macosx/tclMacOSXNotify.c:366 #3 0x0a0943d0 in TclFinalizeNotifier () at ../generic/tclNotify.c:179 #4 0x0a0560dc in Tcl_FinalizeThread () at ../generic/tclEvent.c:959 #5 0x0023c638 in DeleteInterps (arg=0x36c8008) at tclinit.c:1343 #6 0x0001680c in NsCleanupTls (slots=0x3655808) at tls.c:183 #7 0x00018698 in CleanupTls (arg=0x3655808) at pthread.c:764 #8 0x9002d6b0 in _pthread_tsd_cleanup () #9 0x9002c3f8 in _pthread_body () (gdb) f 2 #2 0x0a0cddf8 in Tcl_FinalizeNotifier (clientData=0x39af008) at ../ macosx/tclMacOSXNotify.c:366 366 CFRunLoopSourceInvalidate(tsdPtr->runLoopSource); (gdb) print tsdPtr $1 = (ThreadSpecificData *) 0x39af008 (gdb) print *tsdPtr $2 = { firstFileHandlerPtr = 0x0, checkMasks = { readable = { fds_bits = {0 <repeats 32 times>} }, writable = { fds_bits = {0 <repeats 32 times>} }, exceptional = { fds_bits = {0 <repeats 32 times>} } }, readyMasks = { readable = { fds_bits = {0 <repeats 32 times>} }, writable = { fds_bits = {0 <repeats 32 times>} }, exceptional = { fds_bits = {0 <repeats 32 times>} } }, numFdBits = 0, onList = 0, pollState = 0, nextPtr = 0x0, prevPtr = 0x0, runLoopSource = 0x404e90, runLoop = 0x0, eventReady = 0 } What I did: ./configure --enable-threads --enable-symbols on 10.3.6 OS, then used the resulting libtcl8.4g.dylib on the 10.4. We have a heavy-threaded application (based on aolserver) and this core happens for the first (startup) thread at the moment where the Tcl interp for this thread is being garbage-collected (since not needed). If I --disable-corefoundation, then it works. Now, what you'd like me to do? Zoran |