Hi everyone,

I have two processes - a user process and a root-level LaunchDaemon. I'd like both processes to have shared settings. I've tried getting this to work via a sqlite database, but have run into corruption issues. I've thought about using NSUserDefaults, but the NSGlobalDomain seems to only be global for the user, and I need a cross-user persistent domain, which NSUserDefaults doesn't seem to provide.

I've tried reading and writing an XML file directly, and I can get this to work fine with multiple threads (via a simple NSLock), but when I attempt to apply an O_EXLOCK to the file to prevent one process from writing to the file while the other is, but it doesn't seem to be working.

CFPreferences seems to have most of the same issues as NSUserDefaults. There is a "kCFPreferencesAnyUser" constant, but the documentation says that I can only use that if I have admin privileges (which the user process does not have).

So my question is this:

How can I effectively implement cross-process and cross-user shared settings?

Thanks,

Dave
_______________________________________________

Cocoa-dev mailing list ([email protected])

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to