3

スタックの再割り当てが発生する可能性があると述べられています。私はこれを理解していません。setjmp/longjmp の要点はスタックを保存することであり、longjmp で戻ったときに有効になると考えました。コメントは、スタック全体を移動できることを示唆しているようです。これはすべてのポインターを相殺するので、避けるべき理由がわかります。しかし、スタックの再割り当てはいつ行われるのでしょうか? この用語は今まで聞いたことがありません。

4

1 に答える 1

1

スタックの再割り当てに関するコメントは、coro スタックにのみ適用され、一般的な C スタックには適用されないようです。

通常、一般的な C スタックを関数に渡すことはなく、次のような独自の実装のみを渡します。

 /*
  * Create a new coroutine from the given function, and with the
  * given stack.
  */
 EXPORT
 extern coro coro_new(_entry fn);

したがって、setjmp/longjmpはいつものように安全に使用できます。

于 2015-08-04T17:46:44.553 に答える