エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
libtaskの例として、httpdを書いてみた。200行ぐらいだけど、コアの部分はこんな感じ。fdread/fdwriteは... libtaskの例として、httpdを書いてみた。200行ぐらいだけど、コアの部分はこんな感じ。fdread/fdwriteはノンブロッキングI/Oなんだけど、普通のシングルスレッドプログラムのようにselectループを書く必要がない。どうなっているかというと、libtask内部でスケジューラが存在しているのだ。タスクがI/O待ちが必要になると、ライブラリ内で明示的にスケジューラに制御を移し、次のタスクに切り替える。 void httpdtask(void *arg) { int rfd, fd, n; int status; char *msg; struct stat stat; char fullpath[PATH_MAX], buf[4096]; rfd = (int)arg; status = parserequest(rfd, fullpath, &stat); switch