cancel_work_sync

Langue: en

Autres versions - même langue

Version: June 2009 (debian - 07/07/09)

Section: 9 (Appels noyau Linux)

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.