- Nov 20, 2012
-
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Move the block with @finally into an own function.
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Implements https://blueprints.launchpad.net/tarantool/+spec/fiber-specialization After this patch, all requests even within the same session are handled asynchronously, and responses are sent to the client as soon as they become ready, regardless of the request position in the input buffer. This also changes the internal implementation of iproto from a "one fiber per connection" pattern to "fiber work crew" pattern. This approach significantly reduces the amount of context switches between fibers. There is a bug in gcc Objective C support and nested exception, with which an exception passes by a @catch clause if there are nested @finally clauses. This patch doesn't work around this bug, so if the server is compiled with gcc and the client closes its side of the socket without fully reading the input, the server terminates. The server needs to be compiled with clang for now to work around this bug.
-
- Nov 19, 2012
-
-
Dmitry Simonenko authored
-
Dmitry Simonenko authored
-
- Nov 13, 2012
-
-
Konstantin Osipov authored
Do not modify output buffer between yield points: in net-split, multiple fibers work on the same session, and append output to the same output buffer.
-
- Nov 08, 2012
-
-
Roman Tsisyk authored
-
- Nov 05, 2012
-
-
Eugine Blikh authored
-
Eugine Blikh authored
-
Eugine Blikh authored
-
Eugine Blikh authored
-
bigbes authored
-
bigbes authored
-
- Nov 02, 2012
-
-
Konstantin Osipov authored
Fix argument getpeername
-
Veniamin Gvozdikov authored
-
- Oct 25, 2012
-
-
Konstantin Osipov authored
Change sio_advance_iov to never modify iov vector in place. This allows for reuse of this function in a raw event loop, without fibers. Minor cleanups. Make memcached/noreply.test less race prone: flush all command is running in the event loop, and sometimes it doesn't get a chance to finish before we issue the next command.
-
Konstantin Osipov authored
Use a large timeout value to indicate an infinite timeout, not 0. Chris J. Date teaches us that using 0 as a special value of infinity is a bad idea. An incomplete fix for a bug when a channel is destroyed in atexit handler, but has fibers blocked on it. Minor cleanups.
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
- Oct 23, 2012
-
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Get rid of an artificial wrapper around libev's ev_io object. This allows for more code reuse.
-
Dmitry E. Oboukhov authored
* join fiber->ready and fiber->ifc into one fiber->state * create fiber_yield_timeout function * channel uses fiber_yield_timeout * ipc test doesn't use fiber.sleep
-
- Oct 22, 2012
-
-
Konstantin Osipov authored
-
Dmitry Simonenko authored
-
- Oct 20, 2012
-
-
Konstantin Osipov authored
Move memcached to src/ Make iproto.m dependend on box/*, not vice versa. Remove box_ prefixes from test suite names. Initialize networking outside of box/. This makes Box a step closer to being just a storage layer for Tarantool. Still some ugly deps since box/ continues to manage local hot standby and memcached expire (todo: move it out).
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
- Oct 19, 2012
-
-
Konstantin Osipov authored
-
- Oct 18, 2012
-
-
Konstantin Osipov authored
coio_writev() could modify the passed parameter in case of a partial write. It would corrupt struct obuf, which would pass to coio_writev() a pointer to a vector whose iov_base pointers were later reused. The following would happen: - iobuf_flush() would pass obuf->iov to coio_writev - coio_writev would advance one or two iov_base pointers - capacity value would hence become meaningless, and a subsequent obuf_dup() would overwrite heap memory - we would get a memory corruption in some place very distant from where the problem originally occurred. The fix is to preserve iovec values in coio_writev. This is implemented by keeping a copy of the changed iovec and restoring the original iovec value at exit from coio_writev.
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Dmitry E. Oboukhov authored
drop some ev_watchers from fiber structure.
-
- Oct 17, 2012
-
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Conflicts: src/fiber.m
-