回答編集履歴

4

refine

2020/08/31 14:17

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -33,3 +33,7 @@
33
33
 
34
34
 
35
35
  参考までに、[StackOverflowのこの回答](https://stackoverflow.com/questions/2208833/)がやりたいことに最も近いかもしれません。いずれにせよ、Linuxシグナルとマルチスレッド実装に対する正確な理解が必要となります。
36
+
37
+
38
+
39
+ 前掲FAQにもあるように、[Solaris](https://ja.wikipedia.org/wiki/Solaris)ではスレッドサスペンド/レジュームAPIを提供しています。同スレッドをエミュレーションする [Solaris-compatible Thread Library](https://sourceforge.net/projects/sctl/) が存在しますのでどうしてもという場合は参考になるかもしれません。(ちらっと覗いた雰囲気では、サスペンドされる側にも相当な仕掛けを用意していましたが)

3

refine

2020/08/31 14:17

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- ご自身で言及されている通り、他スレッドのサスペンドは大変危険な処理です。自己責任で前掲FAQにある`SIGSTOP`/`SIGCONT`シグナルを試してみてください。
31
+ ご自身で言及されている通り、他スレッドのサスペンドは大変危険な処理です。~~自己責任で前掲FAQにある`SIGSTOP`/`SIGCONT`シグナルを試してみてください。~~ NPTLでは[`SIGSTOP`はおそらく期待通りに機能しません](https://man7.org/linux/man-pages/man3/pthread_kill.3.html)。
32
32
 
33
33
 
34
34
 

2

refine

2020/08/31 14:05

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- [LinuxThreads Frequently Asked Questions](http://ljk.imag.fr/membres/Jean-Guillaume.Dumas/Enseignements/Polys/Externes/Thread_FAQ.html) より引用:
5
+ Linuxカーネルでは [LinuxThreads](https://en.wikipedia.org/wiki/LinuxThreads) ではなく [NPTL(Native POSIX Thread Library)](https://en.wikipedia.org/wiki/Native_POSIX_Thread_Library) が利用されますが、旧 [LinuxThreads Frequently Asked Questions](http://ljk.imag.fr/membres/Jean-Guillaume.Dumas/Enseignements/Polys/Externes/Thread_FAQ.html) のPOSIXへの言及についてはNPTL現在も同じです。
6
6
 
7
7
 
8
8
 
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- ご自身で言及されている通り、他スレッドのサスペンドは大変危険な処理です。自己責任で前掲FAQにある`SIGSTOP`/`SIGCONT`シグナルを試してください。
31
+ ご自身で言及されている通り、他スレッドのサスペンドは大変危険な処理です。自己責任で前掲FAQにある`SIGSTOP`/`SIGCONT`シグナルを試してみてください。
32
32
 
33
33
 
34
34
 

1

refine

2020/08/31 13:47

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -1,3 +1,7 @@
1
+ C++20標準ライブラリ、およびLinux環境のPThreadsライブラリでは 「他スレッドのサスペンド処理」 を提供しません。
2
+
3
+
4
+
1
5
  [LinuxThreads Frequently Asked Questions](http://ljk.imag.fr/membres/Jean-Guillaume.Dumas/Enseignements/Polys/Externes/Thread_FAQ.html) より引用:
2
6
 
3
7
 
@@ -24,4 +28,8 @@
24
28
 
25
29
 
26
30
 
27
- ご自身で言及されている通り、他スレッドのサスペンドは大変危険な処理です。自己責任で前掲FAQにある`SIGSTOP`/`SIGCONT`シグナルを試してください。Linuxシグナルとマルチスレッド実装に対する正確な理解が必要となります。
31
+ ご自身で言及されている通り、他スレッドのサスペンドは大変危険な処理です。自己責任で前掲FAQにある`SIGSTOP`/`SIGCONT`シグナルを試してください。
32
+
33
+
34
+
35
+ 参考までに、[StackOverflowのこの回答](https://stackoverflow.com/questions/2208833/)がやりたいことに最も近いかもしれません。いずれにせよ、Linuxシグナルとマルチスレッド実装に対する正確な理解が必要となります。