cancel_work_sync
Prev | Workqueues and Kevents | Next

## Name

cancel_work_sync — block until a work_struct's callback has terminated

## Synopsis

`int cancel_work_sync (` | struct work_struct * | work`)`;

## Arguments

`work`

  the work which is to be flushed

## Description

Returns true if `work` was pending.

`cancel_work_sync` will cancel the work if it is queued. If the work's callback appears to be running, `cancel_work_sync` will block until it has completed.

It is possible to use this function if the work re-queues itself. It can cancel the work even if it migrates to another workqueue, however in that case it only guarantees that work->`func` has completed on the last queued workqueue.

cancel_work_sync(delayed_work->work) should be used only if ->timer is not pending, otherwise it goes into a busy-wait loop until the timer expires.

The caller must ensure that workqueue_struct on which this work was last queued can't be destroyed before this function returns.

Prev | Up | Next
flush_workqueue | Home | cancel_delayed_work_sync