Implemented using blocking QtConcurrent calls