G_WITHER_GEOM(9) | FreeBSD Kernel Developer's Manual | G_WITHER_GEOM(9) |
名称
g_wither_geom — 機会があれば、geom、関連するプロバイダとコンシューマ (消費者) を破壊する解説
g_wither_geom() 関数は、geom gp が破壊されることを GEOM に伝えます。 GEOM は与えられた (親のないプロセス内の) geom の各プロバイダでのエラーを設定し、geom を破壊する機会を待ちます。任意の所有されているコンシューマ (消費者) のアクセスカウントが 0 になるなら、コンシューマは、自動的にデタッチされ、破壊されます。任意の所有されているプロバイダにアタッチされた最後のコンシューマがデタッチされるなら、プロバイダは破壊されます。それ以上プロバイダもコンシューマもないなら、geom は破壊されます。これはすべてのクラスで重複したコード避けるために自動的に“ガーベジコレクト (garbage collect)”されます。それが呼び出される前に、フィールド softc は処理され、 NULL に設定されるべきです。 g_wither_geom() 関数は、ほとんど geom のコンシューマとプロバイダのアクセスカウントが 0 でないかもしれないので、geom がすぐに破壊されるという保証が与えられないことに注意してください、すなわち、与えられたクラスからあらゆる geom のためにこの関数を呼び出す理由はクラスがアンロードできることを確信することに十分ではありません。
制限/条件
引数 error は 0 以外でなければなりません。トポロジロックは保持されなければなりません。
関連項目
geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9), g_bio(9), g_consumer(9), g_data(9), g_event(9), g_geom(9), g_provider(9), g_provider_by_name(9)作者
このマニュアルページは、 <pjd@FreeBSD.org>によって書かれました。January 16, 2004 | FreeBSD |