パスワードを忘れた? アカウント作成
359136 journal

satsukiの日記: Linuxお勉強メモ

日記 by satsuki

あるsk_buffをqueueに入れるとかするんだけど,事情があってそのあともちょっと使いたいなーって時の複製処理.

if (atomic_read(&skb->users) != 1) {
        skb2 = skb_clone(skb);
} else {
        skb2 = skb;
        atomic_inc(&skb->users);
}

atomic_readとかatomic_incとかは,単に,今何人が同時に使ってますよとかそういうもので大した機能はない.
atomic_readは中身素通しのマクロ.atomic_setとかもあるが,それも単なる代入.
ただし,atomic_incとか,あとatomic_add等算術計算が必要なものは,アセンブラで記述するなど,各アーキテクチャにおいて最も早く処理が終るようになっている.

それはそうとして,何故単に
skb2 = skb_clone(skb);
しないのか?

BGM: SPARKLE-YUMEMITAATODE/GARNET CROW

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

犯人はmoriwaka -- Anonymous Coward

読み込み中...