Sync functions use the async _loop functions too

So async and sync functions now have the same code path