このページを編集する際は、編集に関する方針に従ってください。

概要

  • kernel/sched.cにて定義
  • 2つのランキューを安全にロックを解除する

引数

実装

/*

* double_rq_unlock - safely unlock two runqueues
*
* Note this does not restore interrupts like task_rq_unlock,
* you need to do so manually after calling.
*/

static void double_rq_unlock(runqueue_t *rq1, runqueue_t *rq2)

	__releases(rq1->lock)
	__releases(rq2->lock)

{

	spin_unlock(&rq1->lock);
  • rq1のロックを解放する:
  • スピンロックrq1->lockの開放を行う。プリエンプション機能を有効にし、可能であれば自ら積極的にプリエンプション(実行権の移譲を行うこと)する
	if (rq1 != rq2)
		spin_unlock(&rq2->lock);
  • rq1とrq2が同じオブジェクトでない場合は、rq2のロックも解放する
  • スピンロックrq2->lockの開放を行う。プリエンプション機能を有効にし、可能であれば自ら積極的にプリエンプション(実行権の移譲を行うこと)する
	else
		__release(rq2->lock);

}

呼出元


履歴

  • 作者:ひら
  • 日付:2005/6/10
  • 対象:2.6.10
    更新日更新者更新内容

コメント



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 07:12:29 (3129d)