変数(整数)の読み書き・演算のアトミック性

複数のスレッドやシグナルハンドラーから変数を読み書き・演算するときはアトミック性に注意な。
3
ふみやす@元シェルまおう(自称でない) @satoh_fumiyasu

@n_soda @koie C でポータブルなアトミック演算方法は実質存在しない (C11 の stdatomic.h はそれ?) という理解でよいでしょうか。

2014-05-28 13:11:51
鯉江 @koie

@satoh_fumiyasu @n_soda 足し算限定ならsem_postでできるかな? sem_getvalueがasync-signal-safeじゃないのが痛いけど。 あとはftruncateとfstatでファイルサイズを変数にしちゃうとか(無茶だけど)

2014-05-28 13:19:30
ふみやす@元シェルまおう(自称でない) @satoh_fumiyasu

@koie @n_soda 今回は GCC 前提でいいので独自アトミック演算で済まそうと思います。昔調べたとき arm 対応は GCC のそこそこ新しいのでないと駄目だったような記憶があるけどどうだったかな…。Samba Team はどう直すかなー。うーむ。ありがとうございました

2014-05-28 13:28:52
ふみやす@元シェルまおう(自称でない) @satoh_fumiyasu

フォロワーの皆さんのおかげで私が知らなかった情報がすぐに集って Samba のバグを一つ潰せました(たぶん。検証はこれからやってもらう)。ありがとうございました。すごい人達にフォローしてもらえるようもっと精進しよっと。

2014-05-28 13:39:03
ふみやす@元シェルまおう(自称でない) @satoh_fumiyasu

Bug 10640 – smbd is not responding - tvent_common_signal_handler() increments non-atomic variables bugzilla.samba.org/show_bug.cgi?i…

2014-05-30 14:08:58