2008年5月9日金曜日

今日のブツブツ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
select.select() @ select module
最初の 3 つの引数は `待機可能なオブジェクト' からなるシーケンスです: ファイル記述子を表す整数値、または引数を持たず、整数を返すメソッド fileno() を持つオブジェクトです。

poll@ select module

register(fd[, eventmask])
ファイル記述子をポーリングオブジェクトに登録します。これ以降の poll() メソッド呼び出しでは、そのファイル記述子に処理待ち中の I/O イベントがあるかどうかを監視します。fd は整数か、整数値を返す fileno() メソッドを持つオブジェクトを取ります。ファイルオブジェクトも通常 fileno() を実装しているので、引数として使うことができます。

poll([timeout])
登録されたファイル記述子に対してポーリングを行い、報告すべき I/O イベントまたはエラーの発生したファイル記述子に毎に 2 要素のタプル (fd, event) からなるリストを返します。

つ~~かなんでpollはオブジェクトかえさねーんだ?!寿命管理に問題が生じるからか?
おかげでmapを用意して管理する必要が出てくる。
たとえばasyncore.pyの131行目

r = poll.poll (l, timeout)
for fd, flags in r:
try:
obj = map[fd]
try:

0 件のコメント: