Blocking vs non-blocking code