split consumer thread from main loop