do cobe operations in goroutine since they can block.