reimplement the icon-find function using pure async I/O and fix the bug of unsequenced find behivier