Hi, i don't get the section on non-blocking code. You say a must complete it's task before it calls b -- to me, that sounds like a is blocking b. I thought asynchronous means two threads of code, a and b, getting executing simultaneously, not first a, then b. Or that b can begin before a is finished. -thx