TASK_INTERRUPTIBLE: 这是针对等待某事件或其他资源而睡眠的进程设置的。在内核发送信号给该进程时表明等待的事件已经发生或资源已经可用,进程状态变为 TASK_RUNNING,此时只要被调度器选中就立即可恢复运行。 TASK_UNINTERRUPTIBLE: 处于此状态,不能由外部信号唤醒,只能由内核亲自唤醒。 TASK_STOPPED: 表示进程特意停止运行。
*/ret = mtd->erase(mtd, erase);if(!ret) {set_current_state(TASK_UNINTERRUPTIBLE); add_wait_queue(&waitq, &wait);if(erase->state != MTD_ERASE_DONE && erase->state != MTD_ERASE_FAILED) schedule(); remove_wait_queue(&waitq, &wait);set_current_state(TASK_RUNNING); ret = (erase...
staticintefx_spi_slow_wait(struct efx_mtd *efx_mtd,booluninterruptible){conststructefx_spi_device*spi=efx_mtd->spi;structefx_nic*efx=efx_mtd->efx;u8 status;intrc, i;/* Wait up to 4s for flash/EEPROM to finish a slow operation. */for(i =0; i <40; i++) {__set_current_state(...