スレッドからスレッドに要求投げるんですよ。パケットサイズもたまーに可変な奴があって。
呼び出し側スタックにパケットの実体を置いて、スレッド越しにポインタだけ投げていいなら一番コスト安いんだけどさ。受け取られるまでは送信側でスタック変数を生かしておく必要がありますね。論外ですね。
んじゃ静的記憶だと、えーと、可変長のリクエストだから…。どうすんだ?
ってとこで考えるのをやめてnewしまくった。しかもスレッド越しに渡すからshared_ptrで包んだ。リクエスト一個一個で毎回毎回shared_ptr<packet_base> packet_sp ( new packet_derived( arg1, arg2 ) )
みたいな。さすがにイラッと来るものが。
まあでも、リクエストの粒度が粗ければ大したことも無いか、とか思うようにしてたんだけどさ。割と細かく出来ないと厳しい気がしてきたんですよ。あんまり細かすぎてもスレッド増やす意味無くなるけど。つーか元々意味無いんじゃねーの(笑)。いや練習という大事な意味が(笑)。
ということで真面目に考えた。
…引数の受け渡し用のパイプを何本か作ればいいだけじゃね?
一対一のパイプだからpush/popの順番が狂ったりも無いし。むしろ引数を遅延して渡せるのは便利な気もするな。メモリ効率はどうなんだろう。まーPC向けだから気にするレベルじゃないな。つーかnewしまくるよりはなあ。
よーし早速書いてみよう。いや、やっぱ明日くらいにしよう(笑)。
(Visited 2 times, 1 visits today)