Alien-uv
view release on metacpan or search on metacpan
libuv/docs/src/loop.rst
libuv/docs/src/migration_010_100.rst
libuv/docs/src/misc.rst
libuv/docs/src/pipe.rst
libuv/docs/src/poll.rst
libuv/docs/src/prepare.rst
libuv/docs/src/process.rst
libuv/docs/src/request.rst
libuv/docs/src/signal.rst
libuv/docs/src/sphinx-plugins/manpage.py
libuv/docs/src/static/architecture.png
libuv/docs/src/static/diagrams.key/Data/st0-311.jpg
libuv/docs/src/static/diagrams.key/Data/st1-475.jpg
libuv/docs/src/static/diagrams.key/Index.zip
libuv/docs/src/static/diagrams.key/Metadata/BuildVersionHistory.plist
libuv/docs/src/static/diagrams.key/Metadata/DocumentIdentifier
libuv/docs/src/static/diagrams.key/Metadata/Properties.plist
libuv/docs/src/static/diagrams.key/preview-micro.jpg
libuv/docs/src/static/diagrams.key/preview-web.jpg
libuv/docs/src/static/diagrams.key/preview.jpg
libuv/docs/src/static/favicon.ico
libuv/docs/src/static/logo.png
libuv/docs/src/static/loop_iteration.png
libuv/docs/src/stream.rst
libuv/docs/src/tcp.rst
libuv/docs/src/threading.rst
libuv/docs/src/threadpool.rst
libuv/docs/src/timer.rst
libuv/docs/src/tty.rst
libuv/docs/src/udp.rst
libuv/docs/src/upgrading.rst
libuv/docs/src/version.rst
libuv/gyp_uv.py
libuv/img/banner.png
libuv/img/logos.svg
libuv/include/uv.h
libuv/include/uv/aix.h
libuv/include/uv/android-ifaddrs.h
libuv/include/uv/bsd.h
libuv/include/uv/darwin.h
libuv/include/uv/errno.h
libuv/include/uv/linux.h
libuv/include/uv/os390.h
libuv/include/uv/posix.h
libuv/README.md view on Meta::CPAN
Use the `ipcrm` command to manually clear up System V resources.
## Patches
See the [guidelines for contributing][].
[node.js]: http://nodejs.org/
[GYP]: http://code.google.com/p/gyp/
[guidelines for contributing]: https://github.com/libuv/libuv/blob/master/CONTRIBUTING.md
[libuv_banner]: https://raw.githubusercontent.com/libuv/libuv/master/img/banner.png
[x32]: https://en.wikipedia.org/wiki/X32_ABI
[Python 2.6 or 2.7]: https://www.python.org/downloads/
[Visual C++ Build Tools]: https://visualstudio.microsoft.com/visual-cpp-build-tools/
[Visual Studio 2015 Update 3]: https://www.visualstudio.com/vs/older-downloads/
[Visual Studio 2017]: https://www.visualstudio.com/downloads/
[Git for Windows]: http://git-scm.com/download/win
libuv/docs/src/conf.py view on Meta::CPAN
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
html_title = 'libuv documentation'
# A shorter title for the navigation bar. Default is the same as html_title.
html_short_title = 'libuv %s documentation' % version
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
html_logo = 'static/logo.png'
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
html_favicon = 'static/favicon.ico'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['static']
libuv/docs/src/design.rst view on Meta::CPAN
libuv is cross-platform support library which was originally written for NodeJS. It's designed
around the event-driven asynchronous I/O model.
The library provides much more than a simple abstraction over different I/O polling mechanisms:
'handles' and 'streams' provide a high level abstraction for sockets and other entities;
cross-platform file I/O and threading functionality is also provided, amongst other things.
Here is a diagram illustrating the different parts that compose libuv and what subsystem they
relate to:
.. image:: static/architecture.png
:scale: 75%
:align: center
Handles and requests
^^^^^^^^^^^^^^^^^^^^
libuv provides users with 2 abstractions to work with, in combination with the event loop:
handles and requests.
libuv/docs/src/design.rst view on Meta::CPAN
The event loop follows the rather usual single threaded asynchronous I/O approach: all (network)
I/O is performed on non-blocking sockets which are polled using the best mechanism available
on the given platform: epoll on Linux, kqueue on OSX and other BSDs, event ports on SunOS and IOCP
on Windows. As part of a loop iteration the loop will block waiting for I/O activity on sockets
which have been added to the poller and callbacks will be fired indicating socket conditions
(readable, writable hangup) so handles can read, write or perform the desired I/O operation.
In order to better understand how the event loop operates, the following diagram illustrates all
stages of a loop iteration:
.. image:: static/loop_iteration.png
:scale: 75%
:align: center
#. The loop concept of 'now' is updated. The event loop caches the current time at the start of
the event loop tick in order to reduce the number of time-related system calls.
#. If the loop is *alive* an iteration is started, otherwise the loop will exit immediately. So,
when is a loop considered to be *alive*? If a loop has active and ref'd handles, active
requests or closing handles it's considered to be *alive*.
( run in 1.774 second using v1.01-cache-2.11-cpan-df04353d9ac )