fgconsume -> fgconsume_, make fgconsume return Either to propagate the exit status