blocking ( flag ) Enable or disable blocking. A good number of the methods in Net::SSH2/libssh2 can not work in non-blocking mode. Some of them may just forcibly enable blocking during its execution. A few may even corrupt the SSH session or crash the program. The ones that can be safely called are read and, with some caveats, write. See "write" in Net::SSH2::Channel. Don't hesitate to report any bug you found in that area! #### The reason is that if you want to do two things at once, say read from some other network connection, and your SSH session, you have two options: use blocking APIs, and use two threads or processes so you can do them both use non-blocking APIs so the same thread can do both This latter approach is called Asynchronous I/O. See for example twisted which uses it extensively.