Ryan Dahl
5cc6090fdf
Add uv_pipe_pair for communication between threads
...
This is only the Unix implementation and test.
2011-12-29 22:41:08 -08:00
Ben Noordhuis
85f6b7952b
Fix Windows build, uv_eio_channel is Unix only.
2011-12-28 14:42:46 +01:00
Paddy Byers
abf9654a55
unix: create separate eio result queue per loop
...
Makes the eio "done" callback run in the thread that submitted it. Makes it safe
to use libeio from multiple event loops.
2011-12-20 20:47:33 +01:00
Ben Noordhuis
6a9cb902ae
Add ngx_queue_foreach() macro.
2011-12-20 20:47:33 +01:00
Ben Noordhuis
69ce0145f6
Wrap platform "thread-safe run once" APIs.
2011-12-20 20:34:55 +01:00
Ryan Dahl
a993329c02
add uv_thread_self
2011-12-20 11:34:18 -08:00
Igor Zinkovsky
3d189de699
platform api
2011-12-14 17:50:36 -08:00
mattn
e53cecb8c0
add uv_run_once()
2011-12-14 14:28:35 +01:00
Ben Noordhuis
f5c2a4a1ae
Merge branch 'v0.6'
...
Conflicts:
src/unix/core.c
src/win/winapi.h
2011-12-02 18:15:04 +01:00
Bert Belder
ee49c7a2b6
Fix MinGW and MinGW-w64 builds
...
Closes GH-222 and GH-267.
Thanks Yuki Okumura and Yasuhiro Matsumoto for providing fixes.
2011-12-01 15:47:49 +01:00
Bert Belder
35fa2a6a51
Merge branch 'v0.6'
2011-11-25 12:46:17 +01:00
Ben Noordhuis
b52b8c7128
util: add uv_strlcpy() and uv_strlcat() functions
2011-11-23 17:29:02 +01:00
Ben Noordhuis
8e4ed88bbe
Wrap platform thread APIs.
2011-11-21 21:04:16 +01:00
Ben Noordhuis
1fc1f28093
Wrap platform mutex and rwlock APIs.
...
Read/write locks are emulated with critical sections on Windows XP and Vista
because those platforms don't have a (complete) native read/write lock API.
2011-11-18 12:42:08 +01:00
Bert Belder
8f563e2963
Revert c-ares upgrade and includes fix
...
It broke the windows build.
This reverts commit 083c97e28b and commit b288afdf14 .
2011-09-27 12:39:55 +02:00
Ben Noordhuis
083c97e28b
c-ares: upgrade to 1.7.5
2011-09-26 22:41:17 +02:00
Bert Belder
622eb99113
win: implement tty
...
loose end: line-buffered input reads ascii, not unicode
2011-09-26 19:31:32 +02:00
Bert Belder
985f1a1b2d
cleanup
2011-09-25 04:09:21 +02:00
Ryan Dahl
03d0c57ea2
Remove uv_is_tty. Use uv_guess_handle instead.
2011-09-23 10:01:45 -07:00
Erick Tryzelaar
7e8645d101
unix,win: Make uv_freeaddrinfo to clean up addrinfo
...
Fixes #196
2011-09-23 09:31:01 -07:00
Ryan Dahl
03652596cf
unix: add uv_guess_handle and uv_tty_get_winsize
2011-09-22 19:35:46 -07:00
Ben Noordhuis
3368d6c1a2
unix: stub file watcher implementation
...
The file watcher API has not been implemented on all Unices yet.
Provide stubs on those platforms so libuv at least compiles.
2011-09-22 23:55:05 +02:00
Ben Noordhuis
2a1c32a60c
linux: implement file watcher API
2011-09-21 13:23:49 -07:00
Igor Zinkovsky
1e0757ffda
windows: file watcher
2011-09-21 13:13:34 -07:00
Ryan Dahl
c1374ba587
Add uv_is_tty()
2011-09-20 11:48:47 -07:00
Ben Noordhuis
bca49960fb
unix: handle stream write errors properly
...
1. Ensure that failed writes don't leave the write queue in an inconsistent
state. Before, write requests were handed back to the user but were not
removed from the write queue. The cause of at least one use-after-free bug.
2. Pass the error to the callback on the next iteration of the event loop
instead of returning it immediately.
2011-09-14 04:16:45 +02:00
isaacs
3c00d87b42
Add EEXIST handling
...
Additionally, map ERROR_ALREADY_EXISTS to EEXIST on Windows. I'm a bit
unsure about this mapping. Could a windows person confirm?
2011-09-12 16:36:35 -07:00
Ryan Dahl
4484d61fe1
Add interfaces for uv_pipe_open, uv_tty_init, uv_tty_set_mode
...
Nothing works - no tests. This is just to coordinate efforts between Bert
and I.
2011-09-12 14:32:14 -07:00
Bert Belder
f790b689a7
Remove uv_init from uv.h and windows backend
2011-09-12 11:32:41 -07:00
Erick Tryzelaar
efa1b54076
Subclass uv_getaddrinfo_t from uv_req_t.
...
This patch also fixes #155 . Since we no longer
memset clear the uv_getaddrinfo_t, the user can
now set the `uv_getaddrinfo_t->data` field without
problems.
2011-09-10 01:46:26 -07:00
Ben Noordhuis
52eca75152
unix: uv_pipe_t should not depend on UV_TCP_PRIVATE_FIELDS
2011-09-10 01:39:46 +02:00
Bert Belder
3d538af06b
win: correctly manage child process stdio handles
2011-09-06 03:20:16 +02:00
Ben Noordhuis
b7d88070d8
fs: add UV_ENOENT error code, add test
2011-09-06 00:17:59 +02:00
Igor Zinkovsky
b90459fc81
windows: use _stati64
2011-09-04 23:31:25 -07:00
Ryan Dahl
a18860aec6
Add uv_fs_t.path on unix and tests
...
Windows implementation missing https://github.com/joyent/libuv/issues/177
2011-09-04 18:05:11 -07:00
Igor Zinkovsky
060026ced3
windows: uv_fs_link + uv_fs_symlink
2011-09-04 13:24:35 -07:00
Bert Belder
7b87ff7c9b
win: rename uv_loop_t.ares_channel to ares_chan to avoid confusing g++
2011-09-04 21:54:31 +02:00
Bert Belder
12b01e95f9
Specialize uv_xxx_getsockname, add uv_tcp_getpeername
2011-09-04 04:49:13 +02:00
Igor Zinkovsky
22197ebf3f
windows: include _stat struct into uv_fs_t
2011-09-01 11:54:43 -07:00
Ryan Dahl
cec94ee075
docs for uv_fs methods
2011-08-31 11:23:29 -07:00
Ryan Dahl
b47c474cfd
Move private headers into include/uv-private
2011-08-31 00:43:55 -07:00
Bert Belder
78debf9f67
win: multiplicity
2011-08-31 04:19:16 +02:00
Bert Belder
3aec77f9d4
bring back uv_init
2011-08-31 04:19:07 +02:00
Ryan Dahl
56dcaf9b06
unix: multiplicity
2011-08-31 04:18:55 +02:00
Ryan Dahl
1a4ead53d6
unix: implement uv_queue_work
2011-08-29 22:57:34 -07:00
Ryan Dahl
0e81406bfb
unix fs_async_dir works
2011-08-29 22:08:51 -07:00
Ryan Dahl
3be275bad7
Begin implementation of UNIX uv_fs_ functions
...
Adding this incomplete work now to ease rebase troubles later as it moves
the functions to src/unix/fs.c and introduces src/unix/internal.h.
2011-08-29 14:36:45 -07:00
Igor Zinkovsky
3a374ca7c9
add missing values to uv_fs_type
2011-08-26 21:51:39 -07:00
Ryan Dahl
7cad73aa47
Fix build for UNIX
2011-08-26 11:26:24 -07:00
Igor Zinkovsky
25175c7071
uv_fs & uv_work APIs
2011-08-26 11:00:53 -07:00
Bert Belder
39aac4a5fc
win: better shutdown for pipes
2011-08-26 02:21:33 +02:00
Ryan Dahl
80e5491886
Simplify UDP docs
2011-08-24 12:25:15 -07:00
Bert Belder
5c9d749a57
win: udp support
2011-08-24 04:55:08 +02:00
Ben Noordhuis
36ce74f2ca
Add UDP support to libuv.
2011-08-24 04:55:01 +02:00
Ben Noordhuis
52024061e4
Make uv_getsockname() operate on uv_handle_t handles.
2011-08-24 04:17:36 +02:00
Bert Belder
5cae6e4e57
win: use uv_req_t.overlapped.Internal field to propagate request errors
2011-08-23 21:24:14 +02:00
Bert Belder
811828719f
win: store the tcp deferred bind error in uv_tcp_t.bind_error, remove uv_handle_t.error
2011-08-23 20:41:16 +02:00
Ben Noordhuis
6cc241ac7a
Fix 'incomplete prototype' compiler warnings on SunOS.
2011-08-22 14:27:39 +00:00
Bert Belder
cc0b0e6238
Remove trailing whitespace
2011-08-21 21:46:05 +02:00
Igor Zinkovsky
8448ee4bf6
Windows: Do simultaneous pending AcceptEx calls.
2011-08-18 17:45:59 -07:00
Ryan Dahl
d77e9795d3
Fix spelling
2011-08-18 10:35:52 -07:00
Igor Zinkovsky
422c139306
Windows: Pre-allocate buffers for overlapped WSARecv if the number of active tcp streams is below 50.
2011-08-17 17:44:54 -07:00
Ryan Dahl
e5a938f1f4
Add uv_buf_init() constructor
2011-08-17 17:43:19 -07:00
Ryan Dahl
ed118836c4
Improve docs
2011-08-17 00:42:44 -07:00
Ben Noordhuis
e8497aee5a
Add error code UV_EPIPE.
2011-08-11 02:45:27 +02:00
Ben Noordhuis
4abd1e0ccc
uv-unix: close file descriptors immediately in uv_close()
...
Don't defer closing of socket and pipe file descriptors to the
next iteration of the event loop. It breaks node.js unit tests
that assume the call to `server.close()` immediately frees up
the bound to address.
2011-08-09 23:14:38 +02:00
Ryan Dahl
1493dcf359
Peter Bright's MSVS fixes
2011-08-06 22:36:59 -07:00
Ryan Dahl
a30a7336f0
Build with gyp
2011-08-06 02:17:56 -07:00
Ryan Dahl
52e1a9e997
Upgrade eio (it has better msvs support)
2011-08-06 00:29:39 -07:00
Peter Bright
d84b249616
Support for unescaped arguments, suitable for use with cmd /c.
...
Robust argument escaping that hopefully matches Windows' algorithm for unescaping.
2011-08-04 18:22:47 -07:00
Ryan Dahl
b2ed24d86e
unix: Remove flock code
...
solaris doesn't have flock
2011-08-02 07:08:13 +00:00
Bert Belder
2e9a743da0
Windows: report uv_spawn() failure asynchronously
2011-08-01 20:24:54 -07:00
Igor Zinkovsky
d272a2183d
Windows: spawn child processes
2011-07-29 19:02:51 -07:00
Ryan Dahl
7108ca8853
uv_spawn requires stdio pipes to be initialized
2011-07-29 15:37:00 -07:00
Ben Noordhuis
8e8af8fd34
uv-unix: use lock file to detect stale UNIX sockets
2011-07-29 03:59:55 +02:00
Igor Zinkovsky
fc7bc2be70
fix mingw build; add stubs for child process API
2011-07-27 11:05:32 -07:00
Ryan Dahl
92bc7b4959
Start uv_spawn()
...
Unix only at the moment. Lacks test for stdio
2011-07-25 16:19:27 -04:00
Igor Zinkovsky
252da78830
uv_std_handle + uv_listen on stdin
2011-07-25 10:28:50 -07:00
Igor Zinkovsky
e7497227bd
merge uv_tcp_listen and uv_pipe_listen into uv_listen
2011-07-22 16:57:09 -07:00
Ben Noordhuis
afd22904ea
ev: mark inline functions in ev.h with __attribute__((unused))
...
Silences the ton of warnings you get with `gcc -Wall -Wextra`.
2011-07-21 15:55:23 +02:00
Igor Zinkovsky
f8bdddcda9
Allow pipe name to be in utf8 for uv_pipe_bind and uv_pipe_connect
2011-07-20 18:55:40 -07:00
Ryan Dahl
b931c9313f
uv_close returns void
2011-07-20 18:03:48 -07:00
Ryan Dahl
07b49ce59a
add uv_ip4_name and uv_ip6_name
2011-07-18 17:39:04 -07:00
Ben Noordhuis
4eff34da43
uv-unix: pipes API implementation
...
Based on UNIX sockets to avoid the vagaries of FIFOs
in asynchronous mode. Currently unlinks stale sockets
before binding and cleans them up again after shutdown.
2011-07-19 00:58:02 +02:00
Igor Zinkovsky
4d31f838b0
Windows: handle ERROR_PIPE_BUSY in uv_pipe_connect
2011-07-18 13:02:32 -07:00
Bert Belder
c1bddb9677
Stop g++ from complaining about anonymous struct usage
2011-07-16 00:33:31 +02:00
Bert Belder
2f83928b6f
Define union uv_any_req
2011-07-14 10:46:34 -07:00
Bert Belder
0ea4c87f8b
Windows implementation of new request API
...
This changes uv-win to use the new uv_req subclasses.
It gets rid of the uv_req.flags field. There used to be only request flag
(UV_REQ_PENDING), and it was mostly obsolete; it only had a real purpose for
internal uv_read requests. Now we'll use the UV_HANDLE_READ_PENDING flag on
the handle instead.
This patch also simplifies the accept logic for named pipes on windows. We
no longer have a separate struct to store information about established
connections. Instead we just carry over the windows HANDLE from the accept
request to the client handle in uv_pipe_accept().
2011-07-14 10:46:08 -07:00
Ryan Dahl
abe0b1ea61
Better request API
...
Instead of uv_shutdown, uv_write, uv_connect taking raw uv_req_t we subclass
uv_req_t into uv_shutdown_t, uv_write_t, and uv_connect_t.
uv_req_init is removed.
2011-07-14 10:45:28 -07:00
Igor Zinkovsky
f5ff869488
allocate windows pipe handles on demand
2011-07-13 20:43:10 -07:00
Bert Belder
4c2d0545fc
Whitespace fixes
2011-07-14 03:00:21 +02:00
Bert Belder
28650425e2
uv-win: refactor request processing
2011-07-13 21:49:15 +02:00
Ben Noordhuis
f852c517a1
Change uv_pipe_*() prototypes from char* to const char*.
2011-07-13 00:12:30 +02:00
Henry Rawas
6b32ebc54f
uv_getsockname
2011-07-12 09:57:08 -07:00
Igor Zinkovsky
2e49cc56d1
Rename uv_pipe_create to uv_pipe_bind.
...
Fixes issue #97 .
2011-07-11 15:24:35 -07:00
Igor Zinkovsky
b6a6dae34f
Named pipes implementation for Windows
2011-07-09 21:41:04 +02:00
Robert Mustacchi
ee599ec114
Fix Linux build
2011-07-07 23:55:58 -07:00
Robert Mustacchi
8287551b91
Fix SunOS build
2011-07-07 23:55:50 -07:00
Ryan Dahl
6d8c499e35
Don't export the private CPP symbols.
2011-07-07 22:38:41 -07:00
Ryan Dahl
18fa8c0ecd
Move ev.h to include/
2011-07-07 21:55:01 -07:00
Robert Mustacchi
8c00b369b4
C99 compatibility.
...
Get 99% of the way there for --std=c89 -pedantic for core files. Also cleans
up follow up warnings and others in tests.
2011-07-07 21:39:08 -07:00
Ryan Dahl
ce8ff3031c
src/ and include/ directories
...
Helps #71 but does not update the MSVC files.
2011-07-07 07:52:57 -07:00