Module: Kgio::DefaultWaiters

### Home Classes Methods

### In Files

- ext/kgio/accept.c

### Methods

- #kgio_wait_readable
- #kgio_wait_writable

### Files

- HACKING
- ISSUES
- LATEST
- LICENSE
- NEWS
- README
- TODO

### Class/Module Index

Quicksearch

- Kgio
- Kgio::DefaultWaiters
- Kgio::File
- Kgio::Pipe
- Kgio::PipeMethods
- Kgio::Socket
- Kgio::SocketMethods
- Kgio::TCPServer
- Kgio::TCPSocket
- Kgio::UNIXServer
- Kgio::UNIXSocket

No matching classes.

# Kgio::DefaultWaiters

This module contains default kgio_wait_readable and kgio_wait_writable methods that block indefinitely (in a thread-safe manner) until an IO object is read or writable. This module is included in the Kgio::PipeMethods and Kgio::SocketMethods modules used by all bundled IO-derived objects.

### Public Instance Methods

kgio_wait_readable → IO click to toggle source
kgio_wait_readable(timeout) → IO or nil

Blocks the running Thread indefinitely until the IO object is readable or if `timeout` expires. If `timeout` is specified and expires, `nil` is returned.

This method is automatically called (without timeout argument) by default whenever kgio_read needs to block on input.

Users of alternative threading/fiber libraries are encouraged to override this method in their subclasses or modules to work with their threading/blocking methods.

    static VALUE kgio_wait_readable(int argc, VALUE *argv, VALUE self)
    {
            int r = kgio_wait(argc, argv, self, 0);

            if (r < 0) rb_sys_fail("kgio_wait_readable");
            return r == 0 ? Qnil : self;
    }

kgio_wait_writable → IO click to toggle source
kgio_wait_writable(timeout) → IO or nil

Blocks the running Thread indefinitely until the IO object is writable or if `timeout` expires. If `timeout` is specified and expires, `nil` is returned.

This method is automatically called (without timeout argument) by default whenever kgio_write needs to block on output.

Users of alternative threading/fiber libraries are encouraged to override this method in their subclasses or modules to work with their threading/blocking methods.

    static VALUE kgio_wait_writable(int argc, VALUE *argv, VALUE self)
    {
            int r = kgio_wait(argc, argv, self, 1);

            if (r < 0) rb_sys_fail("kgio_wait_writable");
            return r == 0 ? Qnil : self;
    }

[Validate]

Generated with the Darkfish Rdoc Generator 2.