On Sat, 12 Sep 2009, Kevin Van Vechten wrote:
I also found it interesting that you built it so it could run without blocks. I found when writing WW that life was ever so much easier using blocks to my advantage during implementation.
Blocks are great and we expect virtually all clients of libdispatch will use them because of the convenience they provide. The choice not to use blocks in the implementation of libdispatch itself was due to the desire to avoid any locks or heap allocations in the "fast path" of the dispatch mechanism.
It also, of course, has the benefit that we can bootstrap libdispatch essentially unmodified on systems without blocks support yet. Compiler changes are slow to propagate through the world for pretty good reasons. Robert N M Watson Computer Laboratory University of Cambridge