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

Reply via email to