問題タブ [ucontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
92 参照

c++ - ユーザーレベルのスレッド実装での ucontext.h の使用に関するスレッド切り替えの問題

最近、ucontext で実装されたユーザーレベルのスレッドを見ましたが、スレッドがどのように切り替わるのかわかりません。上記のコードでは、これが機能した後、 ratherswapcontextのコンテキストは?内にある必要があります。しかし、コンテキストは lastID ブレークポイントを持つスレッドにあります。に保存された「現在のコンテキスト」が現在の関数内のコンテキストではなく、古いスレッドのコンテキストであることは非常に混乱しています。コード全体はhttps://github.com/Miaoshuai/CoroutineにありますthreadMap_[lastId].get()threadScheduleswapcontext(ucontext_t *oucp, ucontext_t *ucp)oucpthreadSchedule(int n)

0 投票する
1 に答える
26 参照

c - 終了時に ucontext から戻り値を取得する

を使用してユーザーレベルのスレッド lib を実装していますucontext_t。を介してスレッドをスケジューラ スレッドにリンクしていますuc_linkが、場合によっては戻り値を取得する必要があります。コンテキストが分かれているため、戻り値を取得する方法がわかりません。戻り値にアクセスする唯一の方法は、何らかの方法でそのコンテキストのスタックに移動し、戻り値がどこにあるかを見つけることです。ただし、これは災害と奇妙なエラーの公式のようです。