Bert Belder
58ba2d86e1
Move shared c-ares glue code from uv-common to cares.c
2012-05-22 16:11:23 +02:00
Bert Belder
c06edd4c88
windows, unix: share c-ares glue code
2012-05-22 16:11:22 +02:00
Ben Noordhuis
80b554129b
unix: reactive new idle watcher implementation
...
The new idle watcher was temporarily disabled in 073a48d due to some semantic
incompatibilities with the previous implementation. This commit resolves those
issues and reactivates the new implementation.
One outstanding bug is that idle watchers can run in a different order
(relative to other handle types) than the old implementation, e.g. (timer, idle)
instead of the expected (idle, timer). This will be fixed in an upcoming commit.
2012-05-22 15:13:52 +02:00
Frank Denis
d27a62deff
unix: fix build on dragonfly bsd
...
Unbreak compilation on Dragonfly BSD, that uses kqueue, too.
2012-05-21 15:44:20 +02:00
Ben Noordhuis
073a48d6bf
unix: back out new idle watcher for now
...
Its semantics don't quite match what node.js expects. This breaks the
stdio_over_pipes and shutdown_close_pipe tests but that can't be helped.
2012-05-18 01:19:56 +02:00
Igor Zinkovsky
60af28abab
windows: support junctions with uv_fs_synlink
...
based on @piscisaureus implementation
2012-05-17 09:53:26 -07:00
Ben Noordhuis
9efa8b3571
unix, windows: rework reference counting scheme
...
This commit changes how the event loop determines if it needs to stay alive.
Previously, an internal counter was increased whenever a handle got created
and decreased again when the handle was closed.
While conceptually simple, it turned out hard to work with: you often want
to keep the event loop alive only if the handle is actually doing something.
Stopped or inactive handles were a frequent source of hanging event loops.
That's why this commit changes the reference counting scheme to a model where
a handle only references the event loop when it's active. 'Active' means
different things for different handle types, e.g.:
* timers: ticking
* sockets: reading, writing or listening
* processes: always active (for now, subject to change)
* idle, check, prepare: only active when started
This commit also changes how the uv_ref() and uv_unref() functions work: they
now operate on the level of individual handles, not the whole event loop.
The Windows implementation was done by Bert Belder.
2012-05-17 07:07:53 +02:00
Andrius Bentkus
985b961d4e
Put POLL into the handle_map, so handle_size returns the size of it correctly.
2012-05-05 17:31:16 +02:00
Ben Noordhuis
b5f9bc861f
sunos: make fs.watch scale better
...
Instead of using one port per watch, use one port for all the watches.
This is a cherry-pick of commit 7326962 from v0.6 into master.
Conflicts:
include/uv-private/uv-unix.h
src/unix/core.c
src/unix/sunos.c
2012-05-05 00:51:32 +00:00
Ben Noordhuis
5d19aa84f0
unix, win: rework uv_dlopen() API
2012-05-03 19:36:40 +02:00
Bert Belder
b9504f7987
Rename uv_platform_socket_t to uv_os_sock_t
2012-05-03 16:05:05 +02:00
Bert Belder
d60d94e0c3
Unix: implement uv_poll
2012-05-03 15:52:56 +02:00
Bert Belder
d7a71761c4
Windows: implement uv_poll
2012-05-03 15:52:52 +02:00
Bert Belder
e1154d70ce
Api for polling external sockets
2012-05-03 15:51:37 +02:00
Bert Belder
19aca7a7c0
Windows: add uv_msafd_poll, to support overlapped socket polling
2012-05-02 03:45:00 +02:00
Bert Belder
99a995a6b8
uv_spawn: support setting the child process' user and group id
2012-04-28 02:38:41 +02:00
Bert Belder
1b6329dd3e
Style fixes
2012-04-25 00:30:07 +02:00
Bert Belder
5342bac4c2
uv.h: make the ssize_t fallback more portable
2012-04-25 00:30:06 +02:00
Ben Noordhuis
feafcdbf5f
include: remove stray backslash
2012-04-18 23:08:33 +02:00
Igor Zinkovsky
d5acfd0c05
64bit offsets for fs operations and cleanup uv_fs_* for uv-win
2012-04-18 11:05:27 -07:00
Ben Noordhuis
132fe600c7
const-ify stream argument to uv_is_readable() and uv_is_writable()
2012-04-18 03:15:53 +02:00
Ben Noordhuis
edb39b2499
const-ify handle argument to uv_is_closing()
2012-04-18 03:11:25 +02:00
Ben Noordhuis
fb6c9eef2a
const-ify handle argument to uv_is_active()
2012-04-18 03:09:53 +02:00
Maciej Małecki
58733d18a6
unix: map EROFS to UV_EROFS
2012-04-16 16:33:35 +02:00
Bert Belder
6ec330a6c3
Add UV_EIO error code
2012-04-12 03:17:04 +02:00
Ben Noordhuis
3c415975d9
unix: don't conditionally compile kqueue fs watcher
...
Always compile in the kqueue-based fs event watcher and handle it at run-time
if the kernel doesn't actually support it.
Works around build issues when -mmacosx-version-min is not set properly.
Fixes joyent/node#3075 .
2012-04-10 23:22:32 +02:00
Bulat Shakirzyanov
f09f7bc6a8
Add functions to look up req and handle sizes
...
Useful for FFI bindings. Closes #370 .
2012-04-05 01:39:40 +02:00
Bert Belder
5f38ba1a89
Move private req and handle fields to platform headers
...
And fix other problems introduced with UV_HANDLE_TYPE_MAP and UV_REQ_TYPE_MAP.
2012-04-05 01:28:24 +02:00
Ben Noordhuis
ed395e0619
unix: replace handle->next_watcher
...
Remove the next_watcher and replace it with a linked list. Said list is named
endgame_handles (because the uv-win calls it that) and contains all the handles
that are in the UV_CLOSING state.
The goal of this commit is two-fold:
a) remove a dependency on libev, and
b) share more code with uv-win in the future
A nice side effect is that it shaves a few bytes off a uv_handle_t.
2012-04-04 05:22:20 -07:00
Ben Noordhuis
bf9a2b3463
x-macro-ify uv_handle_type and uv_req_type
2012-04-04 09:05:13 +02:00
Ben Noordhuis
effa3b65b1
Rename __unused to UV__UNUSED.
...
__unused is - contrary to its name - used in glibc.
The ANSI/ISO standards reserve all identifiers starting with two underscores so
it's generally a good idea not to use those.
2012-04-03 17:41:50 +02:00
Ben Noordhuis
8895c9e672
unix: use uv_timer_t for c-ares' timeout timer
2012-04-03 03:23:57 +02:00
Ben Noordhuis
42095c85a0
Remove UV_ARES_TASK_PRIVATE_FIELDS.
...
It's only used internally, it doesn't have to be part of a public header file.
2012-04-03 02:44:50 +02:00
Vladimir Dronnikov
b309f2e2e6
Add uv_is_closing()
...
Closes #367 .
2012-04-01 21:05:50 +02:00
Ben Noordhuis
1ab8f5a3c5
Conditionally define __unused.
...
Fixes compiler warning '"__unused" redefined' on OS X.
Reported by Saúl Ibarra Corretgé.
2012-03-30 22:40:53 +02:00
Igor Zinkovsky
ab8c3b85c1
export uv_is_readable & uv_is_writable
2012-03-29 18:38:33 -07:00
Igor Zinkovsky
c3daa44c25
windows: explicitly disallow sending non-listening or non-connected
...
TCP sockets over IPC
2012-03-29 18:19:01 -07:00
Igor Zinkovsky
70925c3bb9
windows: Enable passing of TCP connections over IPC
2012-03-29 18:18:46 -07:00
Ben Noordhuis
ef47a627ad
unix: move libeio specific fields to uv-unix.h
2012-03-21 02:11:18 +01:00
Ben Noordhuis
681aa831fa
Mark rbtree functions with __attribute__((unused)).
2012-03-16 02:35:05 +01:00
Bert Belder
aff94a069c
Add UV_ENOSPC and mappings to it
...
Closes GH-337
2012-03-16 02:31:12 +01:00
Ben Noordhuis
dfda5009c2
unix, win: store ares handles in a binary tree
...
Store the uv_ares_task_t handles in a red-black tree, not a linked list.
Fixes #72 .
2012-03-16 00:49:29 +01:00
Ben Noordhuis
7a2bd05493
Fix include guard in tree.h and ngx-queue.h
...
The C99 standard reserves all identifiers (including macros) that start with an
underscore and a capital letter.
Fixes #260 .
2012-03-15 02:23:22 +01:00
Bert Belder
2ef5798c6f
Merge remote-tracking branch 'origin/v0.6'
...
Conflicts:
src/unix/core.c
2012-03-08 03:22:10 +01:00
Bert Belder
1ac71a31e9
Map EBUSY and ENOTEMPTY errors
2012-03-07 21:26:37 +01:00
Nathan Rajlich
5505f2e906
Fix typo in uv.h
2012-03-05 17:32:26 +01:00
Shigeki Ohtsu
b55801f225
win, unix: add uv_dlerror() and uv_dlerror_free()
2012-03-02 16:39:21 +01:00
Ben Noordhuis
ec0eff955e
Revert b3e0ad4, 149d32c, e99fdf0 and ea9baef.
...
Detaching doesn't work yet, the setsid() call fails and leaves the child process
attached to the parent's session.
Revert "test: Add test case for spawning detached child processes."
Revert "win: Implement options.detached for uv_spawn() for Windows."
Revert "unix: Implement options.detached for uv_spawn() for unix."
Revert "Add "detached" member to uv_process_options_t to denote whether a child
process should spawn detached from its parent."
This reverts commit ea9baef95c .
This reverts commit e99fdf0df6 .
This reverts commit 149d32cb96 .
This reverts commit b3e0ad4db8 .
2012-02-28 15:29:05 +01:00
Charlie McConnell
b3e0ad4db8
Add "detached" member to uv_process_options_t to denote whether a child process should spawn detached from its parent.
2012-02-24 15:15:00 +01:00
Ben Noordhuis
d3efefb043
linux: share inotify fd across event loop
...
Previously, a new inotify fd was created for each watcher, making it quite easy
to run into the system-wide fs.inotify.max_user_instances limit (usually 128).
Fixes #300 .
2012-02-23 09:21:30 -08:00
Bert Belder
1d942e2ad4
Merge branch 'v0.6'
2012-02-13 20:02:39 +01:00
Bert Belder
6c80bf34d3
Clean up error handling in win/fs.c, add some error mappings
2012-02-13 20:01:19 +01:00
Ben Noordhuis
4e1f2b1f64
Merge remote-tracking branch 'origin/v0.6'
2012-02-12 16:10:05 +01:00
Ben Noordhuis
c5aa86bd39
Remove uv_import() and uv_export().
...
Not needed anymore now that support for isolates has been removed from Node.
This commit reverts the following commits:
812e410 test: fix up stream import/export test
e34dc13 unix: implement uv_import() and uv_export()
d1a0e8e test: fix undefined macro error
2ce0058 import/export streams accross loops
2012-02-12 15:49:54 +01:00
Igor Zinkovsky
f9be43a564
support half-duplex pipes
2012-02-09 13:33:15 -08:00
Ben Noordhuis
62206c2db0
Clarify API doc comments in uv.h
2012-02-09 22:12:32 +01:00
Nathan Rajlich
dbc046cb7f
Add EXDEV to the errno map.
2012-02-06 21:32:16 +01:00
Ben Noordhuis
e53302fcea
Explicitly export libuv symbols if gcc >= 4.
...
Only export symbols that are part of the libuv API, hide everything else.
Prevents symbol clashes in applications and libraries that depend on libuv and
speeds up link times to boot.
2012-02-06 17:05:47 +01:00
Maciej Małecki
3ff3626e52
unix: map ELOOP to UV_ELOOP
2012-02-03 22:20:14 +01:00
isaacs
243cfcd078
Merge remote-tracking branch 'ry/v0.6'
2012-01-31 18:00:59 -08:00
Brandon Philips
4cfda74de4
uv.h: add EPERM to errno map to fix regression
...
EPERM isn't mapped in so chown returns an unknown error. This is a
regression from 0.4.12.
philips:node/ (master*) $ cat chown.js
var fs = require('fs')
fs.chown("/tmp/foobar", 100, 100, function(er){ console.log(er);})
philips:node/ (master*) $ ls -la /tmp/foobar
total 0
drwxr-xr-x 2 root wheel 68 Jan 24 17:21 .
0.4
---
philips:node/ (master*) $ /usr/local/Cellar/node/0.4.12/bin/node chown.js
{ stack: [Getter/Setter],
arguments: undefined,
type: undefined,
message: 'EPERM, Operation not permitted \'/tmp/foobar\'',
errno: 1,
code: 'EPERM',
path: '/tmp/foobar' }
master
------
philips:node/ (master*) $ ./node chown.js
{ [Error: UNKNOWN, unknown error '/tmp/foobar'] errno: -1, code: 'UNKNOWN', path: '/tmp/foobar' }
AFTER
-----
philips:node/ (master*) $ ./node chown.js
{ [Error: EPERM, operation not permitted '/tmp/foobar'] errno: 49, code: 'EPERM', path: '/tmp/foobar' }
2012-01-31 16:37:26 -08:00
Ben Noordhuis
e34dc13496
unix: implement uv_import() and uv_export()
2012-01-30 21:44:47 +01:00
Igor Zinkovsky
2ce0058251
import/export streams accross loops
2012-01-30 21:44:27 +01:00
Ben Noordhuis
3de0411591
Merge remote-tracking branch 'origin/v0.6'
2012-01-27 22:23:26 +01:00
Ben Noordhuis
b88bc43543
unix: implement uv_udp_set_multicast_loop()
2012-01-24 00:07:22 +01:00
Ben Noordhuis
e710fdb518
unix: implement uv_udp_set_ttl()
2012-01-24 00:07:22 +01:00
Ben Noordhuis
02b41f63dc
Add missing UV_EXTERN declarations in uv.h
2012-01-24 00:07:22 +01:00
Maciej Małecki
24e6c7ec86
unix: map ENAMETOOLONG to UV_ENAMETOOLONG
...
With tests. Closes #295
2012-01-23 19:33:09 +01:00
Dan VerWeire
497b1ecd00
unix: add uv_udp_set_broadcast() and uv_udp_set_multicast_ttl()
2012-01-21 03:06:47 +01:00
Ben Noordhuis
6d9c9a533f
Add uv_loop_refcount() function, debug tool.
2012-01-14 00:33:08 +01:00
Igor Zinkovsky
4d1d02fd18
windows: ensure that uv_fs_event callbacks have long names
2011-12-30 14:59:28 -08:00
Ben Noordhuis
feb267e611
unix: it's legal for dlsym() to return NULL
...
A symbol name can map to NULL. Check dlerror() to see if a real error happened.
2011-12-18 16:49:40 +01:00
Igor Zinkovsky
60630dab0f
windows: enable pending pipe instances knob
2011-12-01 13:48:57 -08:00
Igor Zinkovsky
dceb3e65ca
uv_cwd + uv_chdir
2011-12-01 12:27:12 -08:00
Bruce Mitchener
c69ccfabc2
Remove incorrect documentation comment.
...
The callback for uv_close does not have a status parameter.
2011-12-01 14:22:47 +01:00
Bruce Mitchener
b684deb4f4
Note that uv_is_active works on timers.
2011-11-30 14:48:57 +01:00
Bruce Mitchener
d513d9bb41
Fix typos.
2011-11-30 14:35:13 +01:00
Bert Belder
01f64f6612
Win: get rid of UV_EAINONAME, use UV_ENOENT instead
2011-11-25 10:11:29 +01:00
Ryan Dahl
4ae40b6a3f
Bump version to v0.6
2011-11-14 16:14:10 -08:00
Frank Denis
9322dd1724
Use (void) for a function taking no arguments - fix gcc -Wstrict-prototypes
2011-11-10 22:55:06 +01:00
Ben Noordhuis
224584c53e
sunos: check that event ports supports fs watching
2011-11-10 20:04:55 +01:00
Ben Noordhuis
4889644301
Fix warning: comma at end of enumerator list
2011-11-10 11:37:08 +01:00
Ryan Dahl
6d5ba42436
Remove unnecessary errno
2011-11-09 18:07:13 -08:00
Ryan Dahl
fd2b04d784
Alternative errno strategy
2011-11-09 17:47:24 -08:00
Tj Holowaychuk
a378110f9e
Add UV_ESRCH
...
Fixes #239 .
2011-11-08 16:36:20 -08:00
Ben Noordhuis
51df5e3b00
unix: map EISDIR
2011-11-07 09:20:54 +01:00
Ben Noordhuis
7b973eb4ad
Fix uv_loop_new() and uv_default_loop() function prototypes.
2011-11-06 04:04:32 +01:00
Bert Belder
1997e10b50
Add flags to uv_fs_event_init
2011-11-05 01:42:08 +01:00
Igor Zinkovsky
faca1402ef
make uv_pipe_connect return void
2011-11-04 16:06:53 -07:00
Ryan Dahl
681bd290e6
UV_EACCESS -> UV_EACCES
...
In order to match existing Node API. See
https://github.com/joyent/node/pull/2001
2011-11-03 16:17:12 -07:00
Igor Zinkovsky
74b49e821b
uv_kill
2011-11-02 14:34:07 -07:00
Igor Zinkovsky
78f4b120a1
windows: knob for tuning number of concurrent accept requests
2011-10-31 23:37:45 -07:00
Bert Belder
90e15f1110
Implement uv_dlopen and friends
2011-10-29 00:52:34 +02:00
Bert Belder
e9472fe02b
Prepare libuv for shared library build
2011-10-29 00:52:32 +02:00
Ben Noordhuis
f2c6b4106d
unix: have uv_strerror() handle getaddrinfo() errors
2011-10-28 01:31:55 +02:00
Ben Noordhuis
3e4af533ae
sunos: implement file watcher API
2011-10-26 03:49:34 +00:00
Ben Noordhuis
ec825ffc62
unix: add TCP keepalive and no-delay control knobs
2011-10-21 16:08:26 -07:00
Ben Noordhuis
d396799210
Change return type of uv_get_*_memory() functions
...
... from double to uint64_t. Limit use of floating point in public API as much
as possible.
2011-10-21 10:09:59 -07:00
Bert Belder
fb7138614d
Improve ansi escape code support on windows
2011-10-20 19:31:24 -07:00
Ryan Dahl
2c7e8bb137
Map EAI_NONAME to ENOENT
2011-10-20 17:13:48 -07:00