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 simply abstraction over different I/O polling mechanisms:
| 7ff52b8 unix, windows: don't allow a NULL callback on timers | |
| 4ca9a36 unix, windows: add uv_fileno | |
| ab2c442 fs: introduce uv_readdir_next() and report types | |
| 0ecee21 unix, windows: add uv_recv_buffer_size and uv_send_buffer_size | |
| 02e1ebd include: remove unneeded EADDRINFO errno | |
| 2e9d86e windows: add uv_backend_timeout | |
| e99b89f unix, windows: add uv_fs_mkdtemp | |
| cdc979d aix: improve AIX compatibility | |
| 960eefb unix: guarantee write queue cb execution order in streams | |
| 0d43992 unix, win: add uv_udp_try_send |
| diff --git a/test/echo-server.c b/test/echo-server.c | |
| index 8a8366f..29736ea 100644 | |
| --- a/test/echo-server.c | |
| +++ b/test/echo-server.c | |
| @@ -63,18 +63,26 @@ static void after_write(uv_write_t* req, int status) { | |
| } | |
| +static void after_shutdown(uv_shutdown_t* req, int status) { | |
| + uv_close((uv_handle_t*) req->handle, on_close); |
| Sampling process 33217 for 3 seconds with 1 millisecond of run time between samples | |
| Sampling completed, processing symbols... | |
| Analysis of sampling moar (pid 33217) every 1 millisecond | |
| Process: moar [33217] | |
| Path: /Users/saghul/src/rakudo/install/bin/moar | |
| Load Address: 0x10f26d000 | |
| Identifier: moar | |
| Version: 0 | |
| Code Type: X86-64 | |
| Parent Process: make [32867] |
| commit 833777e0c89bc9f3b05db09564134c8932e52ecf | |
| Author: Saúl Ibarra Corretgé <[email protected]> | |
| Date: Thu Aug 14 22:18:28 2014 +0200 | |
| fs: ifx uv_fs_readdir_next reported types | |
| Some systems (hello SunOS!) don't have thr d_type field on struct | |
| dirent, so mark them as UV_DIRENT_UNKNOWN, also mark anything not a | |
| directory or a file as unknown. |
| d802486 - test: disable tcp_close_accept on Windows | |
| 2e9d86e - windows: add uv_backend_timeout | |
| 89fc7d8 - windows: fix buffer overflow on uv__getnameinfo_work() | |
| 2cd91f9 - unix, windows: move uv_loop_close out of assert | |
| 8db4238 - windows: sort environment variables before calling CreateProcess | |
| 2ce14cf - windows: add more required environment variables | |
| 431b535 - windows: use UV_ECANCELED for aborted TCP writes | |
| e72d48d - unix, windows: const-ify handle in uv_udp_getsockname | |
| ff6a718 - Now working on v0.11.28 | |
| ffe24f9 - 2014.07.32, Version 0.11.27 (Unstable) |
| $ makepkg-mingw -L --nocheck | |
| => WARNING: You don't have installed mingw-w64 toolchain for architecture x86_64. | |
| => WARNING: To install it run: 'pacman -S mingw-w64-x86_64-toolchain' | |
| ==> Making package: mingw-w64-i686-lame 3.99.5-2 (Thu, Jul 31, 2014 1:06:24 PM) | |
| ==> Checking runtime dependencies... | |
| ==> Checking buildtime dependencies... | |
| ==> Retrieving sources... | |
| -> Downloading lame-3.99.5.tar.gz... | |
| % Total % Received % Xferd Average Speed Time Time Time Current | |
| Dload Upload Total Spent Left Speed |
| C:/msys2/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o: In function `pre_c_init': | |
| C:/repo/mingw-w64-crt-git/src/crt/mingw-w64-crt/crt/crtdll.c:67: undefined reference to `_encode_pointer' | |
| C:/repo/mingw-w64-crt-git/src/crt/mingw-w64-crt/crt/crtdll.c:67: undefined reference to `__onexitbegin' | |
| C:/repo/mingw-w64-crt-git/src/crt/mingw-w64-crt/crt/crtdll.c:67: undefined reference to `__onexitend' | |
| C:/msys2/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o: In function `InterlockedCompareExchange': | |
| C:/msys64r/mingw32/i686-w64-mingw32/include/psdk_inc/intrin-impl.h:965: undefined reference to `__native_startup_lock' | |
| C:/msys2/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o: In function `CRT_INIT@12': | |
| C:/repo/mingw-w64-crt-git/src/crt/mingw-w64-crt/crt/crtdll.c:132: undefined reference to `__native_startup_state' | |
| C:/msys2/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../.. |
| saghul@foxtrot /c/Users/saghul/work/pyqt4/sip-4.16.2/sip-4.16.2 | |
| $ python configure.py --platform win32-g++ | |
| This is SIP 4.16.2 for Python 2.7.7 on win32. | |
| The SIP code generator will be installed in C:/msys32/mingw32. | |
| The sip module will be installed in | |
| C:/msys32/mingw32/lib/python2.7/site-packages. | |
| The sip.h header file will be installed in C:/msys32/mingw32/include/python2.7. | |
| The default directory to install .sip files in is C:/msys32/mingw32\sip. | |
| Creating siplib/sip.h... | |
| Creating siplib/siplib.c... |
| saghul@foxtrot /c/Users/saghul/work/python-cjson/python-cjson-1.1.0 | |
| $ ./build_inplace | |
| running build_ext | |
| building 'cjson' extension | |
| C:\msys32\mingw32\bin/i686-w64-mingw32-gcc.exe -fno-strict-aliasing -march=i686 -mtune=generic -O2 -pipe -fwrapv -D__USE_MINGW_ANSI_STDIO=1 -IC:/msys64r/mingw32/i686-w64-mingw32/include -DNDEBUG -DNDEBUG -DMODULE_VERSION=1.1.0 -IC:/msys32/mingw32/include/python2.7 -c cjson.c -o build/temp.mingw-2.7/cjson.o | |
| writing build/temp.mingw-2.7/cjson.def | |
| C:\msys32\mingw32\bin/i686-w64-mingw32-gcc.exe -shared -Wl,--enable-auto-image-base -pipe -LC:/msys64r/mingw32/i686-w64-mingw32/lib -LC:/msys64r/mingw32/lib -s -s build/temp.mingw-2.7/cjson.o build/temp.mingw-2.7/cjson.def -L/mingw32/lib -lpython2.7 -o C:/Users/saghul/work/python-cjson/python-cjson-1.1.0/cjson.pyd | |
| C:/msys32/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o: In function `pre_c_init': | |
| C:/repo/mingw-w64-crt/src/crt/mingw-w64-crt/crt/crtdll.c:67: undefined reference to `_encode_poin |