• 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
Re: Bundle Loading/Unloading at runtime
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bundle Loading/Unloading at runtime


  • Subject: Re: Bundle Loading/Unloading at runtime
  • From: Jean-Daniel Dupas <email@hidden>
  • Date: Fri, 4 Jan 2008 17:35:40 +0100


Le 4 janv. 08 à 17:19, Rahul Shetty a écrit :

Hi All,

We are developing an application that has to run on both Tiger and the Leopard. The application has quite a few Cocoa bundles ,each representing a separate service.
We have reasons to believe that the services that the bundles support will undergo constant update. Hence we have a need to update the bundles frequently through software update.
We want this update to take effect while the application is running.



However in terms of loading and unloading the bundles at run time, we would like to have the following behavior:


1. We identify the bundle that is not busy and unload it.
2. We block all further calls to the bundle
3. We download the latest bundle
3. We load the new bundle in the place of the old one
4. All this happening in the background when the application is running .
5. This is repeated for each of the bundle


The bundles contain mostly Objective-C code. We know that a Cocoa loadable bundle cannot be unloaded (the documentation under "CFBundle and NSBundle" talks about it) . This we believe is the crux of the problem. We tried in vain to
move the Objective-C code to a carbon bundle and then use the CFBundle calls to load/unload the bundle .

I think you do not understand what Carbon Bundle and Cocoa Bundle means.
There is no differences between Cocoa and Carbon bundles. The term "Cocoa Bundle" is generally used for a bundles linked on Cocoa and "Carbon Bundle" for bundles linked on Carbon, but they really are the same thing.


AFAK, a bundle that uses obj-c cannot be unload (prior to 10.5) because the obj-c runtime do not support it. So you cannot use obj-c in a bundle that have to be unloaded (and that must support Mac OS 10.4).


We create an Cocoa object through a function exported from the bundle and proceed
to access the services of the other Cocoa classes through this . We are facing random crashes even in this method. This might be due to the issue of the CFBundle being unable to
load and register all the Cocoa classes.


The harder option is to rewrite the bundle code in C++ and using CoreFoundation classes. However, we would like to keep this as the last option.

Can you provide us with any inputs into how we could go about solving the issue?

Thank you.

Regards,
Rahul.




_______________________________________________

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


References: 
 >Bundle Loading/Unloading at runtime (From: Rahul Shetty <email@hidden>)

  • Prev by Date: Problem with NSArrayController and insert
  • Next by Date: Re: Problem with NSArrayController and insert
  • Previous by thread: Bundle Loading/Unloading at runtime
  • Next by thread: Problem with NSArrayController and insert
  • Index(es):
    • Date
    • Thread