刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

Protothreads

http://www.sics.se/~adam/pt/

スタックを複数作らず、setjump/longjumpも使わずに完全にCのsyntaxでスレッドが利用できるというもの。

仕組みについては下記ページに書かれてる。

http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html

マクロで頑張ってステートを保持して、関数を中断して、次の呼び出しで再開、という仕組みみたい。非常に面白い作りになってる。
ただ、仕組みからして、スレッドから呼び出した関数内でコンテキストスイッチができないのが困るなぁ。