ページ 11

VCのmallocはスレッドセーフ?

Posted: 2012年1月09日(月) 08:12
by ろびん
VC++2010ExpressEditionを使用しています。
aligned_mallocを使用してnewをオーバーロードしようと思っているのですが、
ふとmalloc系の関数はスレッドセーフなのかどうか疑問に思いました。
スレッドセーフならばnew内にスレッドセーフの機構を設けなくてもいいかと思いますが、
そうでないならばスレッドセーフの機構を設けなければいけないかと思います。
分かる方いましたらお願いいたします。

Re: VCのmallocはスレッドセーフ?

Posted: 2012年1月09日(月) 11:05
by softya(ソフト屋)
malloc自体はスレッドセーフですが、いろんなのが交じると動作は保証されないと思います。
aligned_mallocは使ったことが無いのでわかりません。

Re: VCのmallocはスレッドセーフ?

Posted: 2012年1月10日(火) 06:15
by ろびん
返信ありがとうございます。
基本的にはスレッドセーフと理解しました。あまり複雑なことはしないので大丈夫だろうと思います。
aligned_mallocもスレッドセーフだと信じて使うことにします。(何かバグ等が起こればそのときに・・・)
ありがとうございました。

Re: VCのmallocはスレッドセーフ?

Posted: 2012年1月10日(火) 06:23
by たかぎ
_aligned_mallocも内部的にはmallocを呼び出していますので、mallocがスレッドセーフなら_aligned_mallocもスレッドセーフです。
要するに、サイズと得られたポインタの調整をmallocの前後でやっているだけです。