This is a shot at eliminating the "BlockStack" used in ThreadContext for maintaining the current list of blocks. Eliminating this will also allows us to eliminate AbstractStack.

After this patch blocks are maintained much like CRefs are, as a stack of linked lists. This does not do anything to correct our current block semantics, which are not quite 100% (I'm getting "yield without block" errors in Rails right now), but it should make it a little more straightforward to manage blocks. It also eliminates ThreadContext callers from having to maintain the "previous" block as they did before, which was error-prone.

--
Charles Oliver Nutter @ headius.blogspot.com
JRuby Developer @ jruby.sourceforge.net
Application Architect @ www.ventera.com

Attachment: eliminate_blockstack_2.patch
Description: Binary data

Reply via email to