port to sdk2.8.1; add holder for worker thread