coroutine

Boost.CoroutineとBoost.OptionalとBoost.Pythonを使って、C++クラスの内部イテレータをPythonの外部イテレータとして見せる

追記: うっかり戻り値ポリシーのところで boost::python::return_internal_reference<> を使ってしまい、メモリリークを引き起こしていたので修正しました。Stackless Python であれば continuation が使えるので、Python 側で C++ をまたぐ外部イテレータと…

軽量ユーザスレッドを実現するlibtaskを試してみた。

libtask。コルーチンとスケジューラがセットになっているのか。 #include <string.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include "task.h" typedef int err_t; typedef struct { char *name; } my_task_t; void my_task_run(my_task_t *ctx) { printf("Hi, I am a lightw</unistd.h></stdlib.h></stdio.h></string.h>…

じゃ、パイプラインドイテレータ、と呼ぶか?

最初に、たちの悪いエイプリールフールネタと思われる前に、懺悔のために CoR という私の解釈が不適切だった理由を書く必要があります。Chain-of-Responsibility とは「ある同じインターフェイスを持つ状態機械を表現するオブジェクトを結合して、新しい状態…