use direct tight send loop instead of ringbuffer