Author: theraven
Date: Sun Dec 27 17:49:52 2009
New Revision: 29176
URL: http://svn.gna.org/viewcvs/gnustep?rev=29176&view=rev
Log:
Added implementations of some of the new (10.6) NSArray methods that take
blocks as arguments. These all use the new GSBlocks.h macros, so compile
cleanly with GCC, but can be used by code compiled by clang.
Some of these implementations are not as efficient as they could be (especially
the ones that take an NSIndexSet as the first argument). They also don't yet
support concurrent enumeration. Apple implements these using Grand Central.
We could possibly have a background thread that we send these things to (or use
GCD if libdispatch is available). It's not worth spawning a new thread for
them, except in exceptional circumstances (and, unfortunately, we can't easily
tell how expensive a single iteration of a block is. Possibly we could time
one block invocation, and if it's longer than some threshold make it
concurrent, but it's probably not worth the effort).
Modified:
libs/base/trunk/ChangeLog
libs/base/trunk/Headers/Foundation/NSArray.h
libs/base/trunk/Headers/Foundation/NSObjCRuntime.h
libs/base/trunk/Source/NSArray.m
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs