2008-02-23から1日間の記事一覧

Infernoでファイルサーバ

ファイルサーバとしてサービスを実装していくのはPlan9と一緒で、bind/mountやsrvデバイス(#s)等の仕組みも同じ。srvデバイスが変換する通信プロトコルが9PかStyxかの違いはあるが(といってもほとんど違いはないみたいだが)。ファイルサーバの実装という視…

alt

チャネルを使ってプログラムを組むと、一つのスレッドで複数のチャネルからの入出力を待ちたくなる。UNIXでいうところのselect/pollのように。そこで使うのが、alt文*1。ここではtkcmdというTKインタプリタ(?)からコードを引用している。見た目はcase文に…

タイマー関数

ある関数を周期的に呼び出すには、POSIXタイマーやSIGALRMのようにシグナルハンドラを使うことになるけど、Infernoだとチャネルの同期的な性質を利用して、次のように書ける。 implement Timer; include "sys.m"; include "draw.m"; sys : Sys; Timer : modu…