Refactor context2d thread logic