new self-pipe trick for async core