void BrcmPatchRAM::uploadFirmwareThread(void *arg, wait_result_t wait) { DebugLog("sendFirmwareThread enter\n"); BrcmPatchRAM* me = static_cast<BrcmPatchRAM*>(arg); me->resetDevice(); IOSleep(20); me->uploadFirmware(); me->publishPersonality(); me->scheduleWork(kWorkFinished); DebugLog("sendFirmwareThread termination\n"); thread_terminate(current_thread()); DebugLog("!!! sendFirmwareThread post-terminate !!! should not be here\n"); }
void BrcmPatchRAM::uploadFirmwareThread(void *arg, wait_result_t wait) { DebugLog("sendFirmwareThread enter\n"); // don't start firmware load when lock is held (instance is shutting down) if (IOLockTryLock(mLoadFirmwareLock)) { BrcmPatchRAM* me = static_cast<BrcmPatchRAM*>(arg); me->resetDevice(); IOSleep(20); me->uploadFirmware(); #ifndef TARGET_ELCAPITAN me->publishPersonality(); #endif me->scheduleWork(kWorkFinished); IOLockUnlock(mLoadFirmwareLock); } DebugLog("sendFirmwareThread termination\n"); thread_terminate(current_thread()); DebugLog("!!! sendFirmwareThread post-terminate !!! should not be here\n"); }