Branch: refs/heads/fiber-big-bada-boom
Home: https://github.com/mailru/tarantool
Commit: 24d16f8388393e461895937deb3da8a81c41e347
https://github.com/mailru/tarantool/commit/24d16f8388393e461895937deb3da8a81c41e347
Author: Roman Tsisyk <[email protected]>
Date: 2013-01-23 (Wed, 23 Jan 2013)
Changed paths:
M .gitignore
M include/coio.h
M include/fiber.h
M include/ipc.h
M include/recovery.h
M src/admin.m
M src/admin.rl
M src/box/box_lua.m
M src/box/request.m
M src/box/txn.m
M src/coeio.m
M src/coio.m
M src/fiber.m
M src/ipc.m
M src/iproto.m
M src/lua/init.m
M src/lua/lua_ipc.m
M src/memcached-grammar.m
M src/memcached-grammar.rl
M src/memcached.m
M src/recovery.m
M src/replica.m
M src/tarantool.m
M test/box/lua.result
M test/unit/CMakeLists.txt
A test/unit/fiber.m
A test/unit/fiber.result
A test/unit/fiber.test
Log Message:
-----------
fiber-big-bada-boom: rewrite fibers module
* Completely remove the call stack and schedule all fibers via libev
* Forbid all invalid state transitions and implement FSM explicitly
* Rework API to be like Lua coroutines (see fiber_resume/fiber_yield doc)
* Rename fiber_yield_timeout to fiber_sleep, move infinity constant from ipc.h
* Replace old fiber_yield calls by new fiber_sleep with infinity timeout
* Replace old fiber_yield_to and fiber_call by new fiber_resume/fiber_yield
* Add the support for passing and returning arguments on the stack (va_list)
* Replace fiber_setcancellable(false) with @try ... @finally block in ipc
* Remove fibers cache from iproto (duplicated fiber.m functionality)
* Update comments && documentation (partial)
* Add an unit test (partial)
Bugs fixed:
* Bug#1082377 "test/box/lua.test is broken on box.fiber.resume()"
* Bug#1099552 "box.fiber does not detect reused fibers"
* Bug#1100875 "box.fiber.yield wake up caller on next event loop"
* libev events do not resume cancelled fibers anymore (fixes WAL bug and other)
_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help : https://help.launchpad.net/ListHelp