私はファイルシステム上で何か変わるのを待つ必要のある単純なタスクを持っています(基本的にプロトタイプのコンパイラです)。だから、私は変更されたファイルのチェックの後、5秒のスリープで単純な無限のループを持っています。代わりにCtrl+C敬礼の loop do
# if files changed
# process files
# and puts result
のは、私がスレッドを持っているとしましょう:活動は、記述子のいずれかで検出されるまで無期限にブロック私はselect()にタイムアウトを提供していないので sub new {
my $class = shift;
my $self = ref $class || $class;
bless { 'read_set' => IO::Select->new,
私は単純なソケットラッパークラスを実装しました。これは、非ブロック機能が含まれています。クラスは、単純な関数受け取る含ま void Socket::set_non_blocking(const bool b) {
mNonBlocking = b; // class member for reference elsewhere
int opts = fcntl(m_sock,