WORK_ST_TASK
[WORK_ST_IDLE] = WORK_ST_TASK, /* start queuing task */
[WORK_ST_TASK] = WORK_ST_TASK, /* NOP */
[WORK_ST_EXEC] = WORK_ST_TASK, /* queue task another time */
[WORK_ST_CANCEL] = WORK_ST_TASK, /* start queuing task again */
[WORK_ST_TASK] = WORK_ST_TASK, /* NOP */
[WORK_ST_TASK] = WORK_ST_EXEC, /* call callback */
case WORK_ST_TASK:
[WORK_ST_TIMER] = WORK_ST_TASK, /* start queueing task */
[WORK_ST_TASK] = WORK_ST_TASK, /* NOP */
[WORK_ST_CANCEL] = WORK_ST_TASK, /* failed to cancel */
[WORK_ST_TASK] = WORK_ST_IDLE, /* cancel */
case WORK_ST_TASK:
[WORK_ST_TASK] = WORK_ST_IDLE, /* cancel and drain */
[WORK_ST_TASK] = WORK_ST_CANCEL, /* try to cancel */
case WORK_ST_TASK:
[WORK_ST_TASK] = WORK_ST_IDLE, /* cancel and drain */
case WORK_ST_TASK: