add lock for flushServiceQueue