ギャグでC言語で疑似yieldを実装しようとしてみたが,やめた
イメージ的にはこんな感じで書くと,
int f(){ printf("f1\n"); yield(); printf("f2\n"); return;} int g(){ printf("g1\n"); yield(); printf("g2\n"); return;} int main(){ f(); g(); }
実行結果が,
f1 g1 f2 g2
となる感じですかね? *1
setcontext, getcontext *2 の有効活用で作れそうだとは思うのだが,function call からの return 後の Instruction Pointer*3 を得るのがどうやるんだろうということを考えるのがめんどくなってしまった.誰かやってるような気もするが,どういう解決策をとるんでしょうかねえ,こういう場合.