Commit Graph

123 Commits

Author SHA1 Message Date
Elliot Saba
da343e6237
win: allow fatal errors to trigger WER (#3838)
In order to properly generate minidumps during actual events, it is
necessary to disable the call to `SetErrorMode()` during libuv
initialization and to remove the job flag
`JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION`, both of which interfered
in the normal handling of exceptions. Finally, it was determined
prudent to include `CREATE_DEFAULT_ERROR_MODE` when spawning new
processes, to ensure that whatever error handling mode was set in the
current process is not inherited by subprocesses.

This aligns better with coredump handling on unix, where it is the
responsibility of the embedding application or user to specify the
desired behavior here.
2023-01-17 15:52:30 -06:00
Jameson Nash
cd7b33887f 2022.03.09, Version 1.44.1 (Stable)
Changes since version 1.44.0:
 
 * process: simplify uv__write_int calls (Jameson Nash)
 
 * macos: don't use thread-unsafe strtok() (Ben Noordhuis)
 
 * process: fix hang after NOTE_EXIT (Jameson Nash)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEz7ucqaW+r9cOKzxaeaZ8VaNnnIsFAmIo6e4ACgkQeaZ8VaNn
 nIubZRAAiD6sTkaYpvgXTDD0C9M3HMOms3bL9O23T2Ggtzwnzek1iwZys8KQlhn8
 mhTK+HIT610zcdqOgLE+YLYrtzspb61/8/QSDFoTX1m69rO4WXiW6fejOq6b8fu5
 cIBgqFUf2gVCulBcmqBJ83OL/EPJZmuH9fpEp6LVA74DxDQwlwGXVgTivDZtPEZQ
 thcElPuqlvpyTid42qMhug8DGAR37/qrCiQHUUGX1RWQJkSSMNPSVgXNBWaylO+g
 j3nTp3R5KrutXWa2wFpVx+KzdEP4eDanyL67A/fffHAcEIoSjmha2V+uOCInfDqU
 3Dn4jGTqS9Dc/mlxAxytqnhCFxiYPIPJcLlKJpkg5ygsmSOzx1cvkjkAyhG7A/XD
 44j9dn5rUK95r34anfmBdzCkJvX+vvODJTvgGJ2hjBU63BBeq5xtwtAf/8sLl4y/
 /HzmfVXgCHnWV5U6AHeaSsOOh5nLCV5Q0HpAVn10aIB7s+gaaR5Dfp/FJxdGoVeD
 6fgTkmeyLLXPAyhDZAXO3cE4AfPvlbeQfSAwBEB1m5Cbk5eZ1fj7hoIFwfF6RNQJ
 /hCUTKeNNVi0bx4b2xUAPfjmDABHVCzVTMkdb1xYRjOT2MkI5f1ycz9YZOkRLS/V
 WQEBCermlubQ8Pl1rByxW/GcQrs33PDnjk4KB+blr7+Y6kHplLA=
 =gJmZ
 -----END PGP SIGNATURE-----

Merge tag 'v1.44.1' into merge_1.44.1
2022-03-09 15:57:53 -05:00
Jameson Nash
d54c92e3e6
win: fix style nits [NFC] (#3474)
Internal functions usually have a uv__ prefix.
2022-02-15 10:13:24 -05:00
earnal
7024f8b242
win,spawn: allow UNC path with forward slash
Fixes: https://github.com/libuv/libuv/issues/3159
PR-URL: https://github.com/libuv/libuv/pull/3167
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
2021-09-08 11:27:08 -04:00
Jameson Nash
4fe755bc5b 2021.07.21, Version 1.42.0 (Stable)
Changes since version 1.41.0:
 
 * doc: fix code highlighting (Darshan Sen)
 
 * test: move to ASSERT_NULL and ASSERT_NOT_NULL test macros (tjarlama)
 
 * zos: build in ascii code page (Shuowang (Wayne) Zhang)
 
 * zos: don't use nanosecond timestamp fields (Shuowang (Wayne) Zhang)
 
 * zos: introduce zoslib (Shuowang (Wayne) Zhang)
 
 * zos: use strnlen() from zoslib (Shuowang (Wayne) Zhang)
 
 * zos: use nanosleep() from zoslib (Shuowang (Wayne) Zhang)
 
 * zos: use __getargv() from zoslib to get exe path (Shuowang (Wayne) Zhang)
 
 * zos: treat __rfim_utok as binary (Shuowang (Wayne) Zhang)
 
 * zos: use execvpe() to set environ explictly (Shuowang (Wayne) Zhang)
 
 * zos: use custom proctitle implementation (Shuowang (Wayne) Zhang)
 
 * doc: add instructions for building on z/OS (Shuowang (Wayne) Zhang)
 
 * linux,udp: enable full ICMP error reporting (Ondřej Surý)
 
 * test: fix test-udp-send-unreachable (Ondřej Surý)
 
 * include: fix typo in documentation (Tobias Nießen)
 
 * chore: use for(;;) instead of while (Yash Ladha)
 
 * test: remove string + int warning on udp-pummel (Juan José Arboleda)
 
 * cmake: fix linker flags (Zhao Zhili)
 
 * test: fix stack-use-after-scope (Zhao Zhili)
 
 * unix: expose thread_stack_size() internally (Brandon Cheng)
 
 * darwin: use RLIMIT_STACK for fsevents pthread (Brandon Cheng)
 
 * darwin: abort on pthread_attr_init fail (Brandon Cheng)
 
 * benchmark: remove unreachable code (Matvii Hodovaniuk)
 
 * macos: fix memleaks in uv__get_cpu_speed (George Zhao)
 
 * Make Thread Sanitizer aware of file descriptor close in uv__close() (Ondřej
   Surý)
 
 * darwin: fix iOS compilation and functionality (Hayden)
 
 * linux: work around copy_file_range() cephfs bug (Ben Noordhuis)
 
 * zos: implement uv_get_constrained_memory() (Shuowang (Wayne) Zhang)
 
 * zos: fix uv_get_free_memory() (Shuowang (Wayne) Zhang)
 
 * zos: use CVTRLSTG to get total memory accurately (Shuowang (Wayne) Zhang)
 
 * ibmi: Handle interface names longer than 10 chars (Kevin Adler)
 
 * docs: update read-the-docs version of sphinx (Jameson Nash)
 
 * unix: refactor uv_try_write (twosee)
 
 * linux-core: add proper divide by zero assert (yiyuaner)
 
 * misc: remove unnecessary _GNU_SOURCE macros (Darshan Sen)
 
 * test: log to stdout to conform TAP spec (bbara)
 
 * win,fs: fix C4090 warning with MSVC (SeverinLeonhardt)
 
 * build: some systems provide dlopen() in libc (Andy Fiddaman)
 
 * include: add EOVERFLOW status code mapping (Darshan Sen)
 
 * unix,fs: use uv__load_relaxed and uv__store_relaxed (Darshan Sen)
 
 * win: fix string encoding issue of uv_os_gethostname (Eagle Liang)
 
 * unix,process: add uv__write_errno helper function (Ricky Zhou)
 
 * Re-merge "unix,stream: clear read/write states on close/eof" (Jameson Nash)
 
 * unix,core: fix errno handling in uv__getpwuid_r (Darshan Sen)
 
 * errors: map ESOCKTNOSUPPORT errno (Ryan Liptak)
 
 * doc: uv_read_stop always succeeds (Simon Kissane)
 
 * inet: fix inconsistent return value of inet_ntop6 (twosee)
 
 * darwin: fix -Wsometimes-uninitialized warning (twosee)
 
 * stream: introduce uv_try_write2 function (twosee)
 
 * poll,win: UV_PRIORITIZED option should not assert (twosee)
 
 * src: DragonFlyBSD has mmsghdr struct too (David Carlier)
 
 * cleanup,win: Remove _WIN32 guards on threadpool (James M Snell)
 
 * freebsd: fix an incompatible pointer type warning (Darshan Sen)
 
 * core: Correct the conditionals for {cloexec,nonblock}_ioctl (Ali Mohammad
   Pur)
 
 * win,tcp: make uv_close work more like unix (Jameson Nash)
 
 * doc: more accurate list of valid send_handle's (twosee)
 
 * win,tcp: translate system errors correctly (twosee)
 
 * unix: implement cpu_relax() on ppc64 (Ben Noordhuis)
 
 * docs: move list of project links under PR control (Jameson Nash)
 
 * test: wrong pointer arithmetic multiplier (Erkhes N)
 
 * doc: switch discussion forum to github (Jameson Nash)
 
 * idna: fix OOB read in punycode decoder (Ben Noordhuis)
 
 * build: make sure -fvisibility=hidden is set (Santiago Gimeno)
 
 * illumos: event ports to epoll (tjarlama)
 
 * illumos,tty: UV_TTY_MODE_IO waits for 4 bytes (Joshua M. Clulow)
 
 * doc: add vtjnash GPG ID (Jameson Nash)
 
 * linux: read CPU model information on ppc (Richard Lau)
 
 * darwin: fix uv_barrier race condition (Guilherme Íscaro)
 
 * unix,stream: fix loop hang after uv_shutdown (Jameson Nash)
 
 * doc,udp: note that suggested_size is 1 max-sized dgram (Ryan Liptak)
 
 * mingw: fix building for ARM/AArch64 (Martin Storsjö)
 
 * unix: strnlen is not available on Solaris 10 (Claes Nästén)
 
 * sunos: restore use of event ports (Andy Fiddaman)
 
 * sunos,cmake: use thread-safe errno (Andy Fiddaman)
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEErq0KS2hnZ3UaDkrvNKJfsSgkZRQFAmD2OHUSHHZ0am5hc2hA
 Z21haWwuY29tAAoJEDSiX7EoJGUU6XsQAJqkq5qV54EEFQAIf/AV9e4pt5uua2iF
 bTyExNGyty5TW4OCytSxakLWS/9lN5vQo6/bjeUEfhq8a1BmLzJq5Nnmc8ntlYM6
 n89vZSRjgLNwQ2WuRV9akCMTPYydeJc6RboEjTDVlWtSr4QDCwK+fKgaMil+9uow
 Y8biEme/vIcpJNOE3IdhivUoS1Hl1PJrVbhJapHBQ6j4xf8CIrFBwn9qF0IX+Ngp
 9xZVvJFXQkZzqLqkHeMasGCp+hmQDnAiXKO3vbUJbeVwoCukDYmVG8Pb3H3RIyo9
 yZkdBpOZ1GEmnPY766IkArThM+/WBWTgz6pTOl59Zx0Wa5Dmr8ASUiauE/EEARS4
 v/QUQA13MS8cgOBhmPjrLQ9Kv6HPvLuZSjshEJz4RdL8aSThoQ7Om+AlR679wnyK
 vlcfNLoh+Jw1zCWKWO6c5BiqcB/8J/JPT2N0vMmT6+RZ8AiqyjGpBw+t1HeBkdW5
 CPJX06CXk7vsvCKbw4w8i8Xl40zm9yws5tO7ukG/lkmB5EUKhMe1z/5pTAWoFJV/
 srs6S+g3xmJ1oBeytjjEra/iJji/6jQ/oLbYeA+mvBxV5+hu7Mtnpzl0vWKrN5M2
 ewxOvJJtggT1V2WcVqYLmHdZpug+pspG6Uwm6/TG/379IFot3O4OjPZ8wlrLgaNt
 PU0FlUDCxyvT
 =gkXG
 -----END PGP SIGNATURE-----

Merge tag 'v1.42.0' into merge_1.42.0

PR-URL: https://github.com/libuv/libuv/pull/3245
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2021-07-23 13:32:16 -04:00
Yash Ladha
97709e185f
chore: use for(;;) instead of while
In the codebase we have used empty for loop for infinite conditions, so
to bring consistency replaced other occurrences of while in the codebase
with for loop.

PR-URL: https://github.com/libuv/libuv/pull/3128
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2021-04-04 17:15:35 +02:00
Michel Hermier
c177548348
API: expose loop reference in all uv_req_t
The rationale of this patch is pretty simple: Being able to easily access the
loop from an uv_req_t. Most of the uv_req_t exposed a loop member already.

PR-URL: https://github.com/libuv/libuv/pull/2084
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
2020-07-31 14:21:02 -04:00
Jameson Nash
66720786d1 2020.07.04, Version 1.38.1 (Stable)
Changes since version 1.38.0:
 
 * test: use last matching qemu version (cjihrig)
 
 * win, util: rearrange uv_hrtime (Bartosz Sosnowski)
 
 * test: skip signal_multiple_loops test on QEMU (gengjiawen)
 
 * build: add android build to CI (gengjiawen)
 
 * test: extend fs_event_error_reporting timeout (cjihrig)
 
 * build: link libkvm on netbsd only (Alexander Tokmakov)
 
 * linux: refactor /proc file reader logic (Ben Noordhuis)
 
 * linux: read load average from /proc/loadavg (Ben Noordhuis)
 
 * android: remove patch code for below 21 (gengjiawen)
 
 * win: fix visual studio 2008 build (Arenoros)
 
 * win,tty: fix deadlock caused by inconsistent state (lander0s)
 
 * unix: use relaxed loads/stores for feature checks (Ben Noordhuis)
 
 * build: don't .gitignore m4/ax_pthread.m4 (Ben Noordhuis)
 
 * unix: fix gcc atomics feature check (Ben Noordhuis)
 
 * darwin: work around clock jumping back in time (Ben Noordhuis)
 
 * udp: fix write_queue cleanup on sendmmsg error (Santiago Gimeno)
 
 * src: build fix for Android (David Carlier)
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIzBAABCgAdFiEElK42Z1xGTWS6+mjddDQ5C9vpucUFAl7/Yg8ACgkQdDQ5C9vp
 ucXgdg//euAx0jByjpOdc4RjLAXpq+iEDuLQXIzT3GmvK3g5+ymrB1HVkw455l7o
 gHY9f/GM+A8wZBcLoyfMywLiSD78/HOrHwQ1MGiieMm1hPFr8OXQ4Z25Bdx/GsE4
 2nCprDrfMrVUQs8eFVx30fjFvOymzhpHak173N6uBOVBLQRivQHSuOG4Dk7RJSAA
 iCIKQ6JulQ/yX0OFvvnYjwbnt5bCDlr1gTFX1HQZFi4dELIbdfaqn1AkY6COa4mc
 tKZRMC1rV81HejNAYFG2Js1QQaUKtMemyHUple6qRo/TYhsZXMaWShjOOHtBqT5X
 hQ8yqGLcaQhWXI7FlBK9aOFBc2/c7Jrxn78MFnd0C8kUHMT9oMhK3KOUHjJ4K5Zt
 sN06cS9Zj9Gpvcnzffohx6/0ePyIVHsEGBt8gRI3YCH4GR0A12WYc4Kr8YuJu11J
 7WVEjIpxZBRajOq8xfA4n6brM0s8gwJvCm2/ypYZKbQ0kz0ZZD5nOK+Ax+ukdg51
 cBtTyx0tme0bQPZkzJP5sMP6DqGKgHbMzeUueqJ5xXOuXWjnOZRWfxmT22RSc6vI
 9D+9p12GD81KlYoprbKk5Fg/adIW/kKrT1cFMeKgcKhyuq8B5maDoaN/FP0oIZc2
 p1Pv9KEJCo7gI35XwkEvEIDLJ1Ax8B8RQE+8sophzsxVxo5E+GE=
 =P+eq
 -----END PGP SIGNATURE-----

Merge tag 'v1.38.1' into merge_1.38.1

PR-URL: https://github.com/libuv/libuv/pull/2927
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-07-30 15:01:58 -04:00
Ben Noordhuis
3e5d261440
win: replace alloca() with stack-based array
`required_vars_value_len` has a fixed number of elements. There is no
need to use alloca() to allocate it.

Refs: https://github.com/libuv/libuv/pull/2781
PR-URL: https://github.com/libuv/libuv/pull/2783
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2020-04-14 20:44:00 -04:00
Jameson Nash
c39e0217aa 2020.01.24, Version 1.34.2 (Stable)
Changes since version 1.34.1:
 
 * misc: adjust stalebot deadlines (Jameson Nash)
 
 * test: fix env-vars flakiness (cjihrig)
 
 * test: avoid truncating output lines (Jameson Nash)
 
 * darwin: stop calling SetApplicationIsDaemon() (Ben Noordhuis)
 
 * ibmi: implement uv_interface_addresses() (Xu Meng)
 
 * osx,fsevent: fix race during uv_loop_close (Jameson Nash)
 
 * osx,fsevent: clear pointer when deleting it [NFCI] (Jameson Nash)
 
 * Revert "aix: replace ECONNRESET with EOF if already closed" (Jameson Nash)
 
 * unix: handle uv__open_cloexec return value correctly (Anna Henningsen)
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIzBAABCgAdFiEElK42Z1xGTWS6+mjddDQ5C9vpucUFAl4pq5MACgkQdDQ5C9vp
 ucWJxA//fZm/u46gxSeRdWeFu9W1r1CgkJqmWT6vHeeBphk28lAulHAO0AM/bbbd
 x2WsLS8q7cLk3chwpN4CgJkgS8acqcsuHBGEzqc8o5cd76rCkua7eHvOR83D4Ix4
 c46hJH7WF3S4jnVV09iAU+mGplyUPF3F8HvmbTNZnbsuLKj2U88kDjm4nsxiSwdn
 aMeyZNtM6NdtqHRgIup+SqS4hNvaUt+gD7715efTlGPDwLR3KCJ8Mzd9F4JFrPrT
 wCjAGLiTFZXFcnwR/Ysx66jQNjfp/fZy7G/zU+7UFKwCjZdwZyybqzy4lmYXtV7N
 2hmliaxm3UsYPSD06mA+iUTdD9vnk2/htCNL5OBS11b6lAliYtdNC3l9BQ2Y3TVp
 xobPcjiRWmvN5P0GIL9/DjK7nxpSdj7BFFyyVz21/+OsYX+NYI4L/Vb4RjezGeGy
 RMS26S530fOsPCbPlSyEUqvjbTHI95FiLK8Y008YlRRsWVsCxrdrhDjT964LHZ51
 nFFPkR0Ghr/y0d9AzBsrsnjAi9g/K+dX3F72S8S2gS3LMkLVr6fLrEQ5AmclAa4f
 62TZvnKY3MzjdzsBpslGHHVp3l+HsNdkI27bLCbYUAL/c+R0fl96mac34IHGL+KV
 b/99O3WMxGtq/Zdn709ryMOLnC+F5KTJpl2LckExfxvubPcu9UQ=
 =SjB7
 -----END PGP SIGNATURE-----

Merge tag 'v1.34.2' into merge_1.34.2

PR-URL: https://github.com/libuv/libuv/pull/2649
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2020-01-31 13:34:36 -08:00
Ben Noordhuis
1fc72276f9
win: fix uv_spawn() ENOMEM on empty env
Commit ba780231 ("unix,win: handle zero-sized allocations uniformly")
makes `uv__malloc()` return NULL when `size == 0`.

That's exactly the size that is passed to it when uv_spawn() tries to
spawn a process with an empty environment so handle that edge case.

Fixes: https://github.com/nodejs/node/issues/29008
PR-URL: https://github.com/libuv/libuv/pull/2408
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jameson Nash <vtjnash+github@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2019-08-09 09:59:47 -04:00
Jameson Nash
102a79fc20 2019.05.22, Version 1.29.1 (Stable)
Changes since version 1.29.0:
 
 * unix: simplify uv/posix.h include logic (cjihrig)
 
 * test: increase test timeout (cjihrig)
 
 * linux: fix sscanf() overflows reading from /proc (Ben Noordhuis)
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIzBAABCgAdFiEElK42Z1xGTWS6+mjddDQ5C9vpucUFAlzkAM0ACgkQdDQ5C9vp
 ucXyuA/+NhzStMozgVJQ6lYjIjFQX4brTRr94r/fD46IVm0zHmXSh9qhxX8CVRSq
 u+aw4NfL1O+QYH3GObYB2fn/zDWmw0wOvBdIj96esVUSxvXHQt4xuugO8WcBx9QN
 d8hVfmLE8SQotOCAvHeW5RJJj0Xj9XMHtlRecMZfWCXnGntoGMVGLKyy0b+mfA5w
 Z7qxQ5odSi5b18qabiqrLG+NSZTNbozDWcfvkdUeJtmkBSqJNIZIkTjzXDTAyw41
 DJKqmC2zn4Y95diK8z6ayW/FIYtogG75rKZSMDwkHyXEG1+SQ3MFDQBYOdnic/0b
 pMip31nHEn4NZT2JUPi3A3gvlZXtYrm5VxCVRDgMv+I9UQj2EBBfaWASZhtQ0KSh
 UvaBsyuDIHsgGoJUFvrzVx9EjUmFnLl2UIlukNcWL4QiV1bJDpd4VppIsfXUCiud
 UlGc7EEzCgAzxgiG+FTMOpQrDqgjyShJdoEpjzKroVi4DDmWBQoQVkZM3bGdiEOD
 3DXVTfsHrXTkLPC55xqtwAb1Rgyi3mPhSrfHroaPG9gjNrcy9mPHEm5aiIiJ+3gH
 nunWCgMauJgZzBTPYc1+fwpuRkGb7OmPwgsuqYo2B0uZ/nJ5cy9lmuyqCW6u+Ua6
 Nxa2PEoaDeyWvkIOd7sCn+FeeQ2eLcueGLAaGtQdVCano4dmg/c=
 =mp2y
 -----END PGP SIGNATURE-----

Merge tag 'v1.29.1' into merge_1.29.1

PR-URL: https://github.com/libuv/libuv/pull/2316
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2019-06-07 14:22:16 -04:00
Jameson Nash
c5593b51dc warnings: fix code that emits compiler warnings
PR-URL: https://github.com/libuv/libuv/pull/2066
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2018-11-29 11:21:44 -05:00
Jameson Nash
f4a06a095c 2018.11.14, Version 1.24.0 (Stable)
Changes since version 1.23.2:
 
 * unix: do not require PATH_MAX to be defined (Brad King)
 
 * win,doc: path encoding in uv_fs_XX is UTF-8 (hitesh)
 
 * unix: add missing link dependency on kFreeBSD (Svante Signell)
 
 * unix: add support for GNU/Hurd (Samuel Thibault)
 
 * test: avoid memory leak for test_output (Carlo Marcelo Arenas Belón)
 
 * zos: avoid UB with NULL pointer arithmetic (Carlo Marcelo Arenas Belón)
 
 * doc: add vtjnash to maintainers (Jameson Nash)
 
 * unix: restore skipping of phys_addr copy (cjihrig)
 
 * unix,win: make uv_interface_addresses() consistent (cjihrig)
 
 * unix: remove unnecessary linebreaks (cjihrig)
 
 * unix,win: handle zero-sized allocations uniformly (Ben Noordhuis)
 
 * unix: remove unused uv__dup() function (Ben Noordhuis)
 
 * core,bsd: refactor process_title functions (Santiago Gimeno)
 
 * win: Redefine NSIG to consider SIGWINCH (Jeremy Studer)
 
 * test: make sure that reading a directory fails (Sakthipriyan Vairamani)
 
 * win, tty: remove zero-size read callbacks (Bartosz Sosnowski)
 
 * test: fix test runner getenv async-signal-safety (Ben Noordhuis)
 
 * test: fix test runner execvp async-signal-safety (Ben Noordhuis)
 
 * test,unix: fix race in test runner (Ben Noordhuis)
 
 * unix,win: support IDNA 2008 in uv_getaddrinfo() (Ben Noordhuis)
 
 * win, tcp: avoid starving the loop (Bartosz Sosnowski)
 
 * win, dl: proper error messages on some systems (Bartosz Sosnowski)
 
 * win,fs: retry if uv_fs_rename fails (Bartosz Sosnowski)
 
 * darwin: speed up uv_set_process_title() (Ben Noordhuis)
 
 * aix: fix race in uv_get_process_title() (Gireesh Punathil)
 
 * win: support more fine-grained windows hiding (Bartosz Sosnowski)
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIzBAABCgAdFiEElK42Z1xGTWS6+mjddDQ5C9vpucUFAlvqWTsACgkQdDQ5C9vp
 ucX3ug//b4BUrqkohyhH5bjTbdlk4GVLJYhDYS2ZVUbHnBpcn7HkMiA2iJIcUUXh
 W/unU/g4pTUPfe42zhW3Lpy+AXSxeU/L2I9UaR5zTrzurCb821lGN25+gEjJOiQs
 WmuOQ9nj18EfF/XpNZIpq63eXHtL9nuNqJYf5EvRa3h10KyayBcNYFoJNupWIW+a
 a1sH+JiqMXInoXymsf9gCNm2IrqIpRV8PivPOVuWFQ6cqrTRmzyQD2AzCT+Op3s8
 PE+MW2mZGbCzBMjfvzvzoXZqPqy0ESEDsi39+Q+O7B58prTIiIEXZS1fvNSLmqLR
 oFfwRTPJonylmbuRgbxtkrwVAmsbV7ZAN+Nxcz5G8lq7eLvUErlwP2k7EryQQK31
 iCx2ld33UU8madcl3G8T4ksxusPUyHUdjE64MOtqNT1bnI2CAm/4lY7XL3jiT0Nr
 NahA/HvSEqA+EpdnlVWLasSgbgVWu5sbu8q+a8jHxFLhfDj526aPGRLqW5aMn/8O
 hzNXwO3BMS422ToVZMu0MFp5e3np20NR5mCsCWTkEQvryKQ1rbchlme4gagxGCfE
 zxKB4Qg3BaciHlilz732aUKaqFm8aR5jlqqCOS5WnkjBPXbdER8/kROf01e9IbQx
 NcnvEDOxZJBo4Q7F7OecDi85MPjIuFrBAXLM7BBj1gXbbyG22fU=
 =65Oa
 -----END PGP SIGNATURE-----

Merge tag 'v1.24.0' into merge_1.24.0

PR-URL: https://github.com/libuv/libuv/pull/2075
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-11-19 16:08:51 -05:00
Bartosz Sosnowski
4c2dcca27b
win: support more fine-grained windows hiding
Added UV_PROCESS_WINDOWS_HIDE_CONSOLE and
UV_PROCESS_WINDOWS_HIDE_GUI for specifying if console or GUI
subprocess windows are to be hidden.

Refs: https://github.com/nodejs/node/pull/24034
PR-URL: https://github.com/libuv/libuv/pull/2073
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-11-10 14:43:23 -05:00
Santiago Gimeno
6e7da5fbc0 2018.08.18, Version 1.23.0 (Stable)
Changes since version 1.22.0:
 
 * win,pipe: restore compatibility with the old IPC framing protocol (Bert
   Belder)
 
 * fs: add uv_open_osfhandle (Bartosz Sosnowski)
 
 * doc: update Visual C++ Build Tools URL (Michał Kozakiewicz)
 
 * unix: loop starvation on successful write complete (jBarz)
 
 * win: add uv__getnameinfo_work() error handling (A. Hauptmann)
 
 * win: return UV_ENOMEM from uv_loop_init() (cjihrig)
 
 * unix,win: add uv_os_{get,set}priority() (cjihrig)
 
 * test: fix warning in test-tcp-open (Santiago Gimeno)
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIzBAABCgAdFiEElK42Z1xGTWS6+mjddDQ5C9vpucUFAlt2LW8ACgkQdDQ5C9vp
 ucXlDBAAlCVoa6GZthYy7fOBddNn2410GVKNZTUwNZ+bZL6ctpFxhgoH/Vir2SVg
 /8Je+Se3jz6QXJx0cA2+gLZdZ+nmZn4cAOGo9p6pWq2SVhmtc7F89KkHc8DDG0GR
 yGF09utyM4fQL0pnDYLzg66iquQJPCd1BwP32LlHOM0kqDyqli+OVphw/X9ABeHl
 GFPMD8i8wuHAKcOQo7xLsIETZVax/LC6N7seeMxO2ZIdAZFSeBw4OEyHra9hLq2r
 eleTccsA5R+tZZE9gUyefZ4s0desZkfndC0iL3qoWaM+TVxwpuB379BquDwhVwC1
 CFaFv7HLikNjUgwTSz9nUbsqxni2z+QH5gmgaF7WWpPIJcSf3ZH4T8wW9abRwizR
 BIehRtVHEM+TmC3Hr1ttfnDjMoFtyO33Tw1lSpQ9vlhll+sotei8RP7+oPumjlAN
 rs6dfnZ2FTxjNDWG1yaDXxoh2GWwR9gbxr/SiL/ZhoNHukJNN+gPAamF11S3Sk0v
 +h+iC9dtdiOPPWipxCZ+xeB3Tdus5Z+HVgG7Se859nt1r0kwA5zKfGw9pv65La9g
 KZuTCZjgvx7fCh4Mcw+uVExJ1vTWy+x5kOKk4l62RQj+L9f1YJZxgljMrBQTG9AU
 s4hMGI4gDMblyVM35T3vHModFBvwY0Uy90hn/yBCNILGbznNmD0=
 =Uf50
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEYS8OrZQBYiN530QC8ow8jaM8A74FAlt/3vUACgkQ8ow8jaM8
 A76jzQ//fAIPMjf42ifdQhD3/EFskQ9AwdiPLmDALUM9qn5hzfGp6XZ/XJKq87kg
 i2tm9wqh8m+QknSbnRkZMjDQrpmQuOypS+mqBDTVuPHHJ5V53f0zgStqlZ2dE5h9
 B/5YcGTukVjK6BIlazFH5QO8urc9IsYefSvPp9gepO1XnLCzkE9OpVgL9jFTLcaG
 Yvovtkbm4tkdYlOYZEp8LitnocRH84eJCZZipA3cfwctaWShKjPL6i/vB6TsmyH2
 7QSdKcBkbYJ50r03gUSRYNQYpoJDJEg7eht/XGPVbUGMhcZ53oz6DqGE+bqalZ5P
 VbD76KC96tqDhW99nCUij/RdT4Xo7NbK2+RiMXznr2H3KkpIt3eKEdD62B3ax1Hc
 cNzk/fINareTe/6gPVg08A8Tzpsg48PNnLpGkzYpHghCn2XBR1iTtQNpIOa1UpxO
 Gqe+uEP8k08tQ/n9rpBzBnNsC+fCZQU6Q5LGpWnTXMRjNtQuWM99O9k06TBPmDWI
 AQyJ9MByEt5bwNqsIg9nVe+iXkxNbZBOLHmqbkDUWNTDhjY3+oVh8Dq/18nvfgMk
 dIIBrBa0FEGbG/r/uKpuMqNmxCQel8nkC0sQ5vdIN8CfzAfQnoMww93GyPEpQTSR
 FAwdk7ri+mGcGw3igUp8IsgAKwgjJAkkWzAX3gAwHrw1aoUnc60=
 =3idK
 -----END PGP SIGNATURE-----

Merge tag 'v1.23.0' into merge_1.23.0

PR-URL: https://github.com/libuv/libuv/pull/1952
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-08-24 12:33:18 +02:00
Ben Noordhuis
619937c783 unix,win: merge handle flags
Some long overdue refactoring that unifies more of the UNIX and Windows
backends.

PR-URL: https://github.com/libuv/libuv/pull/1904
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2018-06-29 22:24:52 +02:00
Bert Belder
4e53af9120
win,pipe: fix IPC pipe deadlock
This fixes a bug where IPC pipe communication would deadlock when both
ends of the pipe are written to simultaneously, and the kernel pipe
buffer has already been filled up by earlier writes.

The root cause of the deadlock is that, while writes to an IPC pipe are
generally asynchronous, the IPC frame header is written synchronously.
So when both ends of the pipe are sending a frame header at the same
time, neither will read data off the pipe, causing both header writes
to block indefinitely.

Additionally, this patch somewhat reduces the spaghetti level in
win/pipe.c.

Fixes: https://github.com/libuv/libuv/issues/1099
Refs: https://github.com/nodejs/node/issues/7657
Refs: https://github.com/electron/electron/issues/10107
Refs: https://github.com/parcel-bundler/parcel/issues/637
Refs: https://github.com/parcel-bundler/parcel/issues/900
Refs: https://github.com/parcel-bundler/parcel/issues/1137
PR-URL: https://github.com/libuv/libuv/pull/1843
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2018-05-29 13:02:22 -07:00
Bert Belder
9584df25dc
src,test: fix idiosyncratic comment style
Back in the day I wrote comments in a really unusual way. Nowadays it
makes my eyes bleed, and clang-format doesn't know how to deal with it.

PR-URL: https://github.com/libuv/libuv/pull/1853
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2018-05-29 11:56:49 -07:00
Tobias Nießen
02e358fa45
src,lib: fix comments
PR-URL: https://github.com/libuv/libuv/pull/1840
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-05-22 16:34:33 -04:00
cjihrig
60bac5a98f
win: perform case insensitive PATH= comparison
Refs: https://github.com/nodejs/node/issues/20605
PR-URL: https://github.com/libuv/libuv/pull/1837
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-05-09 13:45:57 -04:00
Brad King
20cc969e5d
process: add CPU affinity mask option to uv_spawn
It allows setting the child process' CPU affinity mask.
Implement it on Linux, FreeBSD, and Windows for now, and fail with
UV_ENOTSUP on other platforms.

Fixes: https://github.com/libuv/libuv/issues/1389
PR-URL: https://github.com/libuv/libuv/pull/1527
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
2018-02-28 22:12:12 +01:00
Santiago Gimeno
f94282c7ab 2018.02.22, Version 1.19.2 (Stable)
Changes since version 1.19.1:
 
 * test: fix incorrect asserts (cjihrig)
 
 * test: fix a typo in test-fork.c (Felix Yan)
 
 * build: remove long-obsolete gyp workarounds (Ben Noordhuis)
 
 * build: split off tests into separate gyp file (Ben Noordhuis)
 
 * test: check uv_cond_timedwait more carefully (Jamie Davis)
 
 * include,src: introduce UV__ERR() macro (Mason X)
 
 * build: add url field to libuv.pc (Ben Noordhuis)
 
 * doc: mark IBM i as Tier 3 support (Jesse Gorzinski)
 
 * win,build: correct C2059 errors (Michael Fero)
 
 * zos: fix timeout for condition variable (jBarz)
 
 * win: CREATE_NO_WINDOW when stdio is not inherited (Nick Logan)
 
 * build: fix commmon.gypi comment (Ryuichi KAWAMATA)
 
 * doc: document uv_timer_start() on an active timer (Vladimír Čunát)
 
 * doc: add note about handle movability (Bartosz Sosnowski)
 
 * doc: fix syntax error in loop documentation (Bartosz Sosnowski)
 
 * osx,stream: retry sending handle on EMSGSIZE error (Santiago Gimeno)
 
 * unix: delay fs req register until after validation (cjihrig)
 
 * test: add tests for bad inputs (Joyee Cheung)
 
 * unix,win: ensure req->bufs is freed (cjihrig)
 
 * test: add additional fs memory management checks (cjihrig)
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - https://gpgtools.org
 
 iQIcBAABCgAGBQJajdXDAAoJEHQ0OQvb6bnF+gkQAIYnk1ujKETakcu/O8M/d+yu
 gZkLAnqkMYD5X5rTEFkaHrzrQMD85twxme+GgegSFweUDvhqVQWveeNG5zRJ8/ri
 HsysKioqBsMfzCtJw4W+wDLIL7ltja2vcZooTTyvrIArLd2zQ8sn0nHe/eTq2uKl
 wMPhup9qxl10THpevdab3AMr1jEJ3KSsFaNUaVLySf6DJJqY4pRV+ekDGQVrkNZU
 XzH67YN2XWP5dsavAVX0GsnQraX8kNWgYjcDK93D55hj93iyq+38ZYstEhNqIGF9
 9StzptoUyqK5KD5tyDYC2WmgwBJd9eAodmjCdq+ZP0td/irxEhQoRAX7aoAjBGzY
 j3vTb0JXhvvEghivap86mkxPhAQ6rmbGZkG/yOi6eexL/es1GwhGmfzE3NgUexCx
 nyKVCWqVo4IjL53+jndaX3wE4AIKpo0geah7f82v7cIJJqYN8DtaNN9imwZO3r7p
 WFUx2ujOYGuFcz1xbFNyLzBH0Rda2JnsvtAstGvWXSoXzCNSEU5PZ6rpn3jcOVU5
 mDjQ9z/x3kp25qp014+wxHD+mltZzcL8H8fJfQ9JkGWdYE+R3brzwib07GctdlKP
 3/PGH6vbDyiiCEiwfwjhjZpZWyJcaEuGegEc7J80uEm+/yq1/4HrdaFbI20D2heB
 NIj8XaaPt8Vqsafp0ZWp
 =Aa+M
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEYS8OrZQBYiN530QC8ow8jaM8A74FAlqRjUEACgkQ8ow8jaM8
 A77UBw//b71/tAhf1ZOEwouhCjuoy17PNrgfmpQFw8NbaJc6YALe2oQ+1+gc/GPp
 9kaPfjDLSlZwYJMVtiTmKaQoqYNj3Y6ZJatZYambZ89/3XCBjd4WbK2IMnpth+xU
 tLzvjd5RlNMNpyrdrlEXneZi5ql7/QeRLj85k2790LSSajODK8A4VoZZoRmfBL4S
 rnngc5BFI2MGNOyUcc4HBtAcusvt6KIZWxhiRHLa0vpNmrnUAcXqruxzp36+ct+3
 efy+9cx6uzbnqg7dv8WHljre+2we4NaHcH4W2zCkNuf0JrO9reJMjojBb3+NsVIt
 HBHonkVLvRf8eTv8VFoKQPqeMStVj2FtVRmuKqcZ8l/fZNH/Fz2R2tO2ZaLCrSax
 TkAiuLi7uOY32oBNNyI6GGwcJAD52ROl+UCBEoRCOpYVx6PWjZnun7zP7bYq+oJt
 h1qL7avrGfp7vG+ggDxfeEOlWZKeXBN6/uh+KnTFryxMwZ9GFNu46s2EttS2lATg
 eKvPXTPBF9xKVCxckDph5sBhT420SBt2xa8neeMMdEKXPaDPtyj9kMau6HeU84cO
 bcnGytFhlhx7qUv1sEO0gHp/fYkvdUYUhzsY5lWeVdz3U3j/YhQO+ErzBzhIOU+E
 arC+ldYO9eWzdgRxodOcHX6YFAEnHFeyXs5KfOKbUNdqD0dLNJQ=
 =lWVS
 -----END PGP SIGNATURE-----

Merge tag 'v1.19.2' into merge_1.19.2

PR-URL: https://github.com/libuv/libuv/pull/1753
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2018-02-24 17:04:48 +01:00
Nick Logan
491848a0ad
win: CREATE_NO_WINDOW when stdio is not inherited
Fixes: https://github.com/libuv/libuv/issues/1625
PR-URL: https://github.com/libuv/libuv/pull/1659
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2018-02-21 10:01:07 +01:00
Bartosz Sosnowski
890eedaf59 win, process: uv_kill improvements
Maps pid 0 to the current process, simulating Linux kill sending signal
to the process group.

Adds detection of invalid signals. If the signum is invalid - below 0
or NSIG or above – UV_EINVAL will be returned instead of UV_ENOSYS.

PR-URL: https://github.com/libuv/libuv/pull/1642
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-12-07 14:00:05 +01:00
cjihrig
b21c1f900c
win: let UV_PROCESS_WINDOWS_HIDE hide consoles
The existing UV_PROCESS_WINDOWS_HIDE flag only applies to
executables linked to the WINDOWS subsystem. This allows
CONSOLE subsystem applications to pop up a console
window. This commit sets the CREATE_NO_WINDOW process
flag when UV_PROCESS_WINDOWS_HIDE to prevent this behavior.

Refs: https://github.com/nodejs/node/pull/15380
Refs: https://github.com/joyent/libuv/pull/627
Refs: https://github.com/libuv/libuv/issues/965
PR-URL: https://github.com/libuv/libuv/pull/1558
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
2017-09-25 19:55:59 -04:00
Bartosz Sosnowski
cbcf13af6a win, process: support semicolons in PATH variable
Fixes a bug that would cause libuv to crash when PATH environment
variable contained paths with semicolon in it

Refs: https://github.com/nodejs/help/issues/728
Fixes: https://github.com/libuv/libuv/issues/1422
PR-URL: https://github.com/libuv/libuv/pull/1438
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-07-27 12:34:31 +02:00
Saúl Ibarra Corretgé
7043c79c2a Merge branch 'v1.x' into merge-v1 2017-07-09 13:52:50 +02:00
Jameson Nash
68dafe9016 win: LEP-0005: remove uv_file
Since on Windows HANDLEs are not the same as file descriptors,
confusing the two meant that almost all APIs in libuv had to go through
a thin compatibility layer, adding needless complication.

This removes that layer of external indirection and instead
works with the native Win32 API directly.

See: https://github.com/libuv/leps/blob/master/005-windows-handles-not-fd.md

PR-URL: https://github.com/libuv/libuv/pull/1166
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2017-07-04 23:44:16 +02:00
Ben Noordhuis
87df1448a4 unix,windows: refactor request init logic
Fixes a TODO in src/threadpool.c.  Updates the Windows code to drop the
unused `loop` parameter in calls to uv_req_init().

PR-URL: https://github.com/libuv/libuv/pull/1091
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2017-03-21 16:14:09 +01:00
Eric Sciple
8658ef06c2 win: fix comment in quote_cmd_arg
PR-URL: https://github.com/libuv/libuv/pull/1113
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2016-12-01 22:30:05 +01:00
Saúl Ibarra Corretgé
d110a1b6c5 win: fix compilation
Yours truly broke compilation on bddd6a8489
2015-06-03 00:22:19 +02:00
Saúl Ibarra Corretgé
bddd6a8489 core: add ability to customize memory allocator
This patch is composed by the work done in
https://github.com/libuv/libuv/pull/231 and
https://github.com/libuv/libuv/pull/287 plus some changes by yours
truly.

Thanks @beevik and @mattsta for their work on this!

PR-URL: https://github.com/libuv/libuv/pull/368
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-06-02 12:05:20 +02:00
Saúl Ibarra Corretgé
1f711e4d6d Revert "memory: add uv_replace_allocator"
This reverts commit c272f1f1bc.

The concept will come back to libuv, but it needs some more work.
2015-04-29 09:37:02 +02:00
Brett Vickers
c272f1f1bc memory: add uv_replace_allocator
With uv_replace_allocator, it's possible to override the default
memory allocator's malloc and free calls with functions of the user's
choosing. This allows libuv to interoperate with projects requiring a
custom memory allocator.

Internally, all calls to malloc and free have been replaced with
uv__malloc and uv__free, respectively. The uv__malloc and uv__free
functions call malloc and free unless they have been overridden by a
previous call to uv_replace_allocator.

As part of this change, the special aligned memory allocations
performed in src/win/fs-event.c have been replaced with standard
allocations. The 4-byte alignment being requested in this file was
unnecessary, since standard allocators already guarantee at least an
8-byte alignment.

PR-URL: https://github.com/libuv/libuv/pull/231
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2015-03-05 20:02:16 +01:00
TomCrypto
073323baca win: name all anonymous structs and unions
All the public structs and unions in the private fields in uv-win.h have
been named and all code accessing them updated, to comply to the C89
spec (which were previously causing warnings with the -pedantic flag).

PR-URL: https://github.com/libuv/libuv/pull/239
Reviewed-By: Andrius Bentkus <andrius.bentkus@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
2015-03-04 09:35:10 +01:00
Joey Geralnik
3aeca36a1b unix, windows: fix typos in comments
Fix various typos and spelling mistakes in comments.
Does not affect any code, just changes comments.

PR-URL: https://github.com/libuv/libuv/pull/17
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-11-29 04:23:19 +01:00
huxingyi
ca4741b4a5 windows: fix build on MinGW 2014-08-10 12:09:04 +02:00
Paul Goldsmith
ac879ed8f8 windows: add support for UNC paths on uv_spawn 2014-08-10 10:14:42 +02:00
Alex Crichton
c7e4b31444 windows: read the PATH env var of the child
The unix and windows process implementations diverge in their behavior
when dealing with subprocesses that are spawned with a relative path.
With unix the *child's* PATH environment variable is read, whereas
with windows the *parent's* environment variable is read.

This commit brings the two implementation in line with respect to
their behavior of reading PATH by having both read the *child's* PATH
environment variable. This involves looking into the user-provided
environment on windows and extracting the PATH variable specifically
so it can be inspected later on.
2014-08-06 02:12:44 +02:00
Jameson Nash
8db42383ad windows: sort environment variables before calling CreateProcess 2014-08-01 09:26:21 +02:00
Jameson Nash
2ce14cfab4 windows: add more required environment variables
Adds more of the undocumented-but-required environment variables for uv_spawn
2014-08-01 09:26:21 +02:00
Andrius Bentkus
36b38cbdba style: remove trailing whitespace
Signed-off-by: Fedor Indutny <fedor@indutny.com>
2014-06-24 20:18:10 +04:00
Ryan Cole
907b55e4bf process: adjust quote_cmd_arg for empty arguments
adjust quote_cmd_arg so that empty command line
arguments are double quoted instead of skipped
2014-05-12 23:55:58 +02:00
Alex Crichton
621c4a3929 windows: Fix an infinite loop in uv_spawn
The PATH-parsing code for windows erroneously contained an infinite
loop when the PATH started with a leading semicolon. Each iteration of
the loop usually bumped over the separator, but if the first character
was a semicolon then it would never skip it, causing the infinite
loop.

Closes #909
2014-04-10 07:29:24 -07:00
StarWing
1ec4c23438 windows: fix warnings of MinGW -Wall -O3 2014-03-07 17:21:00 +08:00
Alex Crichton
6f62d62c90 windows: always initialize uv_process_t
The unix implementation of uv_spawn always starts out with a
uv__handle_init, but the windows implementation sometimes bails out
early before calling uv__handle_init. This means that uv_close on a
failed uv_spawn will always succeed on unix but sometimes fail on
windows.

This commit lifts the initialization of the uv_process_t above all of
the error checking to ensure that uv_close will always work when
uv_spawn returns an error.
2014-02-16 13:09:54 +01:00
Alexis Campailla
b83caf8624 windows: uv_spawn code refactor 2013-12-12 09:53:14 -08:00
Alexis Campailla
b65b74741e windows: translate system errors in uv_spawn
We weren't always translating system errors for in uv_spawn.

This is half a fix for node's unit test
 test-child-process-cwd.js on win.
 The rest will go into node lib.
 It also fixes test-child-process-exec-error
2013-12-12 09:53:10 -08:00
Alex Crichton
f764bff699 unix: return exec errors from uv_spawn, not async
If spawning a process fails due to an exec() failure (but it succeeded
in forking), then this should be considered a spawn failure instead of
an asynchronous termination of the process. This allows to check for
common exec() failure conditions such as a bad path quickly instead of
having to rely on keeping track of the async callback.

Additionally, the meaning of the two fields returned in the callback are
now exactly what they advertise to be. The process exit argument is not
one of two values depending on what happened to the child.

Fixes #978.
2013-11-07 22:10:38 +01:00