Non blocking algorithm