(rontolisp) docs
← 関数

listen

(listen &optional stream)

指定された入力ストリーム (引数なしなら標準入力) から文字またはバイトを即座に読めるなら t、そうでなければ nil を返します。ブロックしません。これは available()/ready() に相当する問い合わせであり、プロトコル実装が予期しないデータを検出するために使います (cl-postgres は過大な SSL 応答の検出に用います)。

インタプリタと JVM ではソケットに対してカーネルの受信バッファを見るため、答えは正確です。WASM の --component バックエンドでもソケットに対しては正確ですが、理由が異なります。すでに読み込んだチャンクに未消費のバイトが残っているかを報告するもので、ホスト側で待機中のバイトはブロックせずには観測できません。Preview 1 の WASM には非ブロッキングの問い合わせ手段が一切ないため、listen はコンパイルエラーになります。

(listen)          ; => NIL, 標準入力に未読データがない場合