VC++2010ExpressEditionを使用しています。
aligned_mallocを使用してnewをオーバーロードしようと思っているのですが、
ふとmalloc系の関数はスレッドセーフなのかどうか疑問に思いました。
スレッドセーフならばnew内にスレッドセーフの機構を設けなくてもいいかと思いますが、
そうでないならばスレッドセーフの機構を設けなければいけないかと思います。
分かる方いましたらお願いいたします。
VCのmallocはスレッドセーフ?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: VCのmallocはスレッドセーフ?
malloc自体はスレッドセーフですが、いろんなのが交じると動作は保証されないと思います。
aligned_mallocは使ったことが無いのでわかりません。
aligned_mallocは使ったことが無いのでわかりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
ろびん
Re: VCのmallocはスレッドセーフ?
返信ありがとうございます。
基本的にはスレッドセーフと理解しました。あまり複雑なことはしないので大丈夫だろうと思います。
aligned_mallocもスレッドセーフだと信じて使うことにします。(何かバグ等が起こればそのときに・・・)
ありがとうございました。
基本的にはスレッドセーフと理解しました。あまり複雑なことはしないので大丈夫だろうと思います。
aligned_mallocもスレッドセーフだと信じて使うことにします。(何かバグ等が起こればそのときに・・・)
ありがとうございました。
Re: VCのmallocはスレッドセーフ?
_aligned_mallocも内部的にはmallocを呼び出していますので、mallocがスレッドセーフなら_aligned_mallocもスレッドセーフです。
要するに、サイズと得られたポインタの調整をmallocの前後でやっているだけです。
要するに、サイズと得られたポインタの調整をmallocの前後でやっているだけです。