Re: MPProcessing in Lion
Re: MPProcessing in Lion
- Subject: Re: MPProcessing in Lion
- From: Jean-Daniel Dupas <email@hidden>
- Date: Mon, 14 May 2012 14:56:53 +0200
Le 14 mai 2012 à 14:34, McLaughlin, Michael P. a écrit :
> This past weekend I tried compiling my Snow Leopard Cocoa app in Lion (Xcode 4.3) just to make sure all was OK. I got two warnings stating that MPProcessorsScheduled and MPCreateCriticalRegion were deprecated in Lion but the relevant Lion docs did not say what they should to be replaced with.
>
> I use MPProcessorsScheduled to create an equal number of parallel threads (for a long computation) and MPCreateCriticalRegion to serialize the core of a pseudo-random-number generator.
>
> Two questions:
>
> 1. What should I replace these with?
> 2. Will that replacement also work in Snow Leopard and, if not, what if-criterion should I use to make the code work in both places?
>
> Thanks very much for any help.
>
> --
> Michael P. McLaughlin
MPProcessorsScheduled() should not be used at all, and you should simply run your task using libdispatch (that is available on 10.6) and let it taking care of the number of thread to create.
You can also use NSOperationQueue which is a high level wrapper on libdispatch.
If you really want to now the count of processor, you can use [NSProcessInfo activeProcessorCount] method or sysctl("hw.activecpu").
Critical section should be replaced by pthread mutex (that are available from OS X 10.0), or NSLock, or any other locking primitive.
-- Jean-Daniel
_______________________________________________
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