# 2015-07-18 Today I experimented with poll(2) and finally understood what tasks are fulfilled by libraries such as libuv, libevent and libev (libuv is a key part of todays node.js, before libuv it was libev) . Using poll it is possible to watch an array of file descriptors. poll will block until a file descriptor is ready for a non blocking operation. Once that happens poll will return with information on which option is possible without a block now. Libraries such as libevent enable event-based programming features using calbacks. For example it is possible to execute an asynchronous file or network operation. Once the operation has been executed a callback will be invoked. node.js contains a lot of APIs for file or network operations. Today, libuv is used as the interface from the JavaScript world (V8) into the ``real'' world.