Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > fa21ac0b5c825597d4ae80018c3f2f25 > files > 681

kernel-doc-2.6.38.6-26.rc1.fc15.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>flush_scheduled_work</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="Linux Device Drivers" /><link rel="up" href="ch01s06.html" title="Workqueues and Kevents" /><link rel="prev" href="API-schedule-delayed-work-on.html" title="schedule_delayed_work_on" /><link rel="next" href="API-execute-in-process-context.html" title="execute_in_process_context" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>flush_scheduled_work</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-schedule-delayed-work-on.html">Prev</a>&#160;</td><th width="60%" align="center">Workqueues and Kevents</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-execute-in-process-context.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="flush_scheduled_work"><a id="API-flush-scheduled-work"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>flush_scheduled_work &#8212; 
     ensure that any scheduled work has run to completion.
 </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <strong>fsfuncflush_scheduled_work </strong>(</code></td><td> <var class="pdparam">void</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1" title="Arguments"><a id="id3059197"></a><h2>Arguments</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>void</code></em></span></dt><dd><p>
     no arguments
    </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id3059224"></a><h2>Description</h2><p>
   </p><p>

   Forces execution of the kernel-global workqueue and blocks until its
   completion.
   </p><p>

   Think twice before calling this function!  It's very easy to get into
   trouble if you don't take great care.  Either of the following situations
</p></div><div class="refsect1" title="will lead to deadlock"><a id="id3059243"></a><h2>will lead to deadlock</h2><p>
   </p><p>

   One of the work items currently on the workqueue needs to acquire
   a lock held by your code or its caller.
   </p><p>

   Your code is running in the context of a work routine.
   </p><p>

   They will be detected by lockdep when they occur, but the first might not
   occur very often.  It depends on what work items are on the workqueue and
   what locks they need, which you have no control over.
   </p><p>

   In most situations flushing the entire workqueue is overkill; you merely
   need to know that a particular work item isn't queued and isn't running.
   In such cases you should use <code class="function">cancel_delayed_work_sync</code> or
   <code class="function">cancel_work_sync</code> instead.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-schedule-delayed-work-on.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch01s06.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-execute-in-process-context.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>schedule_delayed_work_on</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span>execute_in_process_context</span></td></tr></table></div></body></html>