Skip to content

Instantly share code, notes, and snippets.

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]

Design overview

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:

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)
@saghul
saghul / gist:d21fa3788af9f3681caf
Created July 31, 2014 11:10
Error building mingw-w64-lame
$ 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
commit daf360ee7660d683da44650c5a154ba11403b7d5
Author: Saúl Ibarra Corretgé <[email protected]>
Date: Tue Jul 8 22:17:34 2014 +0200
windows: set readable and writable flags on uv_tcp_open
We don't know if it's connected already, but do it as a best-effort
approach. FWIW we do the same on Unix.
diff --git a/src/win/tcp.c b/src/win/tcp.c