# Method Stdio.File()->set_nonblocking()

Method set_nonblocking

  ``void` set_nonblocking(`read_callback_t` `read_callback`, `write_callback_t` `write_callback`, `function`(`mixed`:`int`) `close_callback`)`
  ``void` set_nonblocking(`read_callback_t` `read_callback`, `write_callback_t` `write_callback`, `function`(`mixed`:`int`) `close_callback`, `function`(`mixed`, `string`:`int`) `read_oob_callback`, `function`(`mixed`:`int`) `write_oob_callback`)`
  ``void` set_nonblocking()`

Description

  This function sets a stream to nonblocking mode and installs the specified callbacks. See the `set_*_callback` functions for details about them. If no arguments are given, the callbacks will be cleared.

Note

  As opposed to calling the set callback functions separately, this function will set all the callbacks and nonblocking mode atomically so that no callback gets called in between. That avoids races in case the backend is executed by another thread.

Note

  Out-of-band data was not be supported on Pike 0.5 and earlier, and not on Pike 0.6 through 7.4 if they were compiled with the option `'--without-oob'`.

See also

  set_blocking(), set_callbacks, set_read_callback(), set_write_callback(), set_read_oob_callback(), set_write_oob_callback(), set_close_callback() set_nonblocking_keep_callbacks(), set_blocking_keep_callbacks()