マルチテナント向けコンテナ環境における軽量かつ柔軟なARPスプーフィング対策の実現 中田 裕貴,松原 克弥(公立はこだて未来大学),松本 亮介(さくらインターネット株式会社 さくらインターネット研究所) 2020/02/28 情報処理学会 第148回 システムソフトウェアとオペレーティング・システム研究会
マルチテナント向けコンテナ環境における軽量かつ柔軟なARPスプーフィング対策の実現 中田 裕貴,松原 克弥(公立はこだて未来大学),松本 亮介(さくらインターネット株式会社 さくらインターネット研究所) 2020/02/28 情報処理学会 第148回 システムソフトウェアとオペレーティング・システム研究会
Go 1.13までのゴルーチンの切り替えは、チャネルの送受信やシステムコール呼び出し、関数呼び出し前にコンパイラが暗黙的に挿入する処理などによって行われていました。そのため、上記の切り替わり操作を全く行わないループなどがあれば、そのゴルーチンがずっと実行されます。 func loop() { // この辺りにコンパイラがコード挿入している for { // 切り替わり処理が行われないので無限に実行される } } この結果、$GOMAXPROCSが1の場合はプログラムが停止します。コンパイラが挿入するコードは、インライン展開された場合やgo:nosplitディレクティブが記述された場合には行われないので、関数呼び出しをしていてもゴルーチンが切り替わらない場合はあります。 ゴルーチンの切り替えと関数のスタックチェック go doc compile/Compiler Directives Goの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く