• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Leopard crash in CFRunLoopAddObserver()
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Leopard crash in CFRunLoopAddObserver()


  • Subject: Leopard crash in CFRunLoopAddObserver()
  • From: Rangaswamy C T <email@hidden>
  • Date: Sat, 23 Aug 2008 01:30:30 +0530
  • Acceptlanguage: en-US
  • Thread-topic: Leopard crash in CFRunLoopAddObserver()

Hi All,

I am sorry if I have posted to cross dev-lists.

I am in a very strange situation. I am bit new to Mac.

I had an existing desktop application. I wanted to run this application inside Firefox process for some requirement. So I just built my existing application as bundle and started running the application main body in a different thread inside firefox process.

As a result of that Firefox has its own  RunApplicationEventLoop() and its application queue. And in the secondary thread I created to run my application also has one more RunApplicationEventLoop().

Inside my application I have a idleTimer proc that's keeps fetching the events from main Application's queue and re fires the events to different controls in my application.

After this simple change, everything (my application as well as Firefox) was working fine on Tiger and PPC.

But when I run the same on Leapord, firefox's main thread is crashing predominantly at the following place if I keep the firefox app idle for a mintute or so.

0   com.apple.CoreFoundation         0x959ee13c CFRunLoopAddObserver + 44
1   com.apple.AppKit                 0x9628bd0b -[NSApplication setWindowsNeedUpdate:] + 271
2   com.apple.Foundation             0x96b8fb13 __NSThreadPerformPerform + 547
3   com.apple.CoreFoundation         0x959f0615 CFRunLoopRunSpecific + 3141
4   com.apple.CoreFoundation         0x959f0cf8 CFRunLoopRunInMode + 88
5   com.apple.HIToolbox              0x90499da4 RunCurrentEventLoopInMode + 283
6   com.apple.HIToolbox              0x90499bbd ReceiveNextEventCommon + 374
7   com.apple.HIToolbox              0x904f85f2 _AcquireNextEvent + 58
8   com.apple.HIToolbox              0x904f6d4f RunApplicationEventLoop + 207
9   org.mozilla.firefox              0x00237f3f nsAppShell::~nsAppShell() + 133
10  org.mozilla.firefox              0x002c3cde nsAppStartup::DestroyExitEvent(PLEvent*) + 148
11  org.mozilla.firefox              0x0000656e XRE_main + 5892
12  org.mozilla.firefox              0x00003178 main + 32
13  org.mozilla.firefox              0x000030fe start + 270
14  org.mozilla.firefox              0x00003019 start + 41

 When firefox crashed, following the call trace of my secondary (applications) thread.

#0     0x934f84a6 in mach_msg_trap
#1     0x934ffc9c in mach_msg
#2     0x95cfe0ce in CFRunLoopRunSpecific
#3     0x95cfecf8 in CFRunLoopRunInMode
#4     0x9552dda4 in RunCurrentEventLoopInMode
#5     0x9552dbbd in ReceiveNextEventCommon
#6     0x9558c5f2 in _AcquireNextEvent
#7     0x9558ad4f in RunApplicationEventLoop
#8     0x1129b6b9 in CRealApp::Run at CRealApp.cpp:622
#9     0x112bbffc in CWinAppImpl::Run at CWinAppPPImpl.cpp:386
#10   0x112bc0ff in RunContributeMain at CWinAppPPImpl.cpp:263
#11   0x111cd519 in IBEThreadProc at CContributeApp.cpp:32
#12   0x935296f5 in _pthread_start
#13   0x935295b2 in thread_start

The last call from my app is CRealApp::Run(), that has the main event loop of our app (RunApplicationEventLoop).

In the other thread, the complete application is running. This thread is also doing UI work. You think of a application running in this thread, so whatever application does, something happens here also.

I spoke with my senior colleagues regarding this, from them I got the information that in an application all UI work must happen in one thread and we should only have one RunApplicationEventLoop() for the application.

But for me at this point of time, pulling out all the UI code from my secondary thread to the Firefox's application thread and making changes for single RunApplicationEventLoop will be time consuming and I may not able to do now.

Is there are hack that I can do to fix this crash. Is there anybody who had this kind of situation.

Could you please through some pointers ?.

 Thanks
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Prev by Date: Re: Preventing windows from being dragged
  • Next by Date: Re: failing opening socket
  • Previous by thread: Cloning of cocoa screensaver to windows/linux(KDE)
  • Next by thread: CollectionView, PopupButton, CoreData and Bindings
  • Index(es):
    • Date
    • Thread