- 追加された行はこの色です。
- 削除された行はこの色です。
[[Hirofumi Fujii Start Page]]
* Thread object の destructor [#b0eba579]
Thead として実行可能な object が消される時、thread 実行中である場合
どうするか?
基本的には thead 終了を待って消すのがよいような気がする。
もし、途中であっても本当にその時点で消す必要があるなら、たとえば
stop(int delta_time) みたいな関数を用意して本当にとめてから消す。
たとえば
int main()
{
Thread t;
t.run();
...
return 0;
}
この場合、t は thread が終了するまで消えない。従って、プログラムも
thread が終了するまで終了しない。
となると、function 中にあると、thread 終了まで function を抜けない。
これはちょっと嫌かも、、
Thread と service handle にしたらどうか?
int main()
{
Thead t;
ServiceHandle s;
t.run(s);
}
この場合、t.run(const ServiceHandle& s) の中で、s の copy を作れば、
s は消えてよい。
やっぱり変だ。終了の同期をとりたければ join() を使えばよい。
消える時は強制終了すべきだ。