diff --git a/src/box/applier.cc b/src/box/applier.cc index c8c818ccb41a3c645960b5e7927a8d450f2e1122..bb6d8100014f9219ab46cf38f49ba65d262a8f44 100644 --- a/src/box/applier.cc +++ b/src/box/applier.cc @@ -381,7 +381,7 @@ applier_start(struct applier *applier, struct recovery *r) say_crit("starting replication from %s", uri); snprintf(name, sizeof(name), "applier/%s", uri); - struct fiber *f = fiber_new(name, applier_f); + struct fiber *f = fiber_new_xc(name, applier_f); /** * So that we can safely grab the status of the * fiber any time we want. diff --git a/src/box/recovery.cc b/src/box/recovery.cc index 67726e8bc5c7d417165d49cc9c11b01d509e7c8f..deb5d53225a8ed00717a20fb4980ee16a5619ef0 100644 --- a/src/box/recovery.cc +++ b/src/box/recovery.cc @@ -533,7 +533,7 @@ recovery_follow_local(struct recovery *r, const char *name, * Start 'hot_standby' background fiber to follow xlog changes. */ assert(r->watcher == NULL); - r->watcher = fiber_new(name, recovery_follow_f); + r->watcher = fiber_new_xc(name, recovery_follow_f); fiber_set_joinable(r->watcher, true); fiber_start(r->watcher, r, wal_dir_rescan_delay); } diff --git a/src/coio.cc b/src/coio.cc index ac480a63a8e36916d2af138a6dd7c93b2b50ab90..911e1da5f85087bff76b0d8cc48f97f90d1092ff 100644 --- a/src/coio.cc +++ b/src/coio.cc @@ -608,7 +608,7 @@ coio_service_on_accept(struct evio_service *evio_service, try { iobuf = iobuf_new(); - f = fiber_new(fiber_name, service->handler); + f = fiber_new_xc(fiber_name, service->handler); } catch (struct error *e) { error_log(e); say_error("can't create a handler fiber, dropping client connection"); diff --git a/src/fiber.h b/src/fiber.h index b96b1a113c2546aa0f4f75bdd38a2627eb55d405..6bf683a54be0edc13aed052482170f0cba74758b 100644 --- a/src/fiber.h +++ b/src/fiber.h @@ -521,7 +521,7 @@ diag_raise(void) } static inline struct fiber * -fiber_new(const char *name, fiber_func func) +fiber_new_xc(const char *name, fiber_func func) { struct fiber *f = fiber_new_nothrow(name, func); if (f == NULL) { diff --git a/src/lua/fiber.cc b/src/lua/fiber.cc index e1d7da5dbb852b4c0fe5b0279f9e7bbc9d2d3125..fc9c0635be5d06374764a235b30b8fcd6e409157 100644 --- a/src/lua/fiber.cc +++ b/src/lua/fiber.cc @@ -317,7 +317,7 @@ lbox_fiber_create(struct lua_State *L) tnt_raise(LuajitError, L); } - struct fiber *f = fiber_new("lua", box_lua_fiber_run); + struct fiber *f = fiber_new_xc("lua", box_lua_fiber_run); /* Not a system fiber. */ struct lua_State *child_L = lua_newthread(L); int coro_ref = luaL_ref(L, LUA_REGISTRYINDEX); diff --git a/src/lua/init.cc b/src/lua/init.cc index 7195cc83d8157428dff1bf94c46eb6781278ae4e..8b9b9bf56ab1935bd5b1d997c05b2dcc7da47580 100644 --- a/src/lua/init.cc +++ b/src/lua/init.cc @@ -507,7 +507,7 @@ tarantool_lua_run_script(char *path, int argc, char **argv) * To work this problem around we must run init script in * a separate fiber. */ - script_fiber = fiber_new(title, run_script); + script_fiber = fiber_new_xc(title, run_script); fiber_start(script_fiber, tarantool_L, path, argc, argv); /* diff --git a/src/main.cc b/src/main.cc index ccce27a44da4f0424d4beb6472b8ebf1d87ee9b3..71a908a07f305dc15e45b3e4474a02e2e1d85d75 100644 --- a/src/main.cc +++ b/src/main.cc @@ -146,7 +146,7 @@ sig_snapshot(ev_loop * /* loop */, struct ev_signal * /* w */, " the signal is ignored"); return; } - fiber_start(fiber_new("snapshot", (fiber_func)box_snapshot)); + fiber_start(fiber_new_xc("snapshot", (fiber_func)box_snapshot)); } static void diff --git a/test/unit/coio.cc b/test/unit/coio.cc index e1f2a6a0ab711fe88ccf2933c31cdd0512a32a3c..5955d33bfda3ee7fa03340ab842703b32c4c3ef6 100644 --- a/test/unit/coio.cc +++ b/test/unit/coio.cc @@ -25,7 +25,7 @@ stat_notify_test(FILE *f, const char *filename) { header(); - struct fiber *touch = fiber_new("touch", touch_f); + struct fiber *touch = fiber_new_xc("touch", touch_f); fiber_start(touch, f); ev_stat stat; note("filename: %s", filename); @@ -65,7 +65,7 @@ int main() { memory_init(); fiber_init(fiber_cxx_invoke); - struct fiber *test = fiber_new("coio_stat", main_f); + struct fiber *test = fiber_new_xc("coio_stat", main_f); fiber_wakeup(test); ev_run(loop(), 0); fiber_free(); diff --git a/test/unit/fiber.cc b/test/unit/fiber.cc index 99918c32cc90a6d0eb4b0960416390d543128667..8921b864eb3ba78dbe518769c33af6bdb159c784 100644 --- a/test/unit/fiber.cc +++ b/test/unit/fiber.cc @@ -47,19 +47,19 @@ fiber_join_test() { header(); - struct fiber *fiber= fiber_new("join", noop_f); + struct fiber *fiber = fiber_new_xc("join", noop_f); fiber_set_joinable(fiber, true); fiber_wakeup(fiber); fiber_join(fiber); - fiber = fiber_new("cancel", cancel_f); + fiber = fiber_new_xc("cancel", cancel_f); fiber_set_joinable(fiber, true); fiber_wakeup(fiber); fiber_sleep(0); fiber_cancel(fiber); fiber_join(fiber); - fiber = fiber_new("exception", exception_f); + fiber = fiber_new_xc("exception", exception_f); fiber_set_joinable(fiber, true); fiber_wakeup(fiber); try { @@ -74,7 +74,7 @@ fiber_join_test() * A fiber which is using exception should not * push them up the stack. */ - fiber = fiber_new("no_exception", no_exception_f); + fiber = fiber_new_xc("no_exception", no_exception_f); fiber_set_joinable(fiber, true); fiber_wakeup(fiber); fiber_join(fiber); @@ -82,7 +82,7 @@ fiber_join_test() * Trying to cancel a dead joinable cancellable fiber lead to * a crash, because cancel would try to schedule it. */ - fiber = fiber_new("cancel_dead", cancel_dead_f); + fiber = fiber_new_xc("cancel_dead", cancel_dead_f); fiber_set_joinable(fiber, true); fiber_wakeup(fiber); /** Let the fiber schedule */ @@ -106,7 +106,7 @@ int main() { memory_init(); fiber_init(fiber_cxx_invoke); - struct fiber *main = fiber_new("main", main_f); + struct fiber *main = fiber_new_xc("main", main_f); fiber_wakeup(main); ev_run(loop(), 0); fiber_free(); diff --git a/test/unit/fiber_stress.cc b/test/unit/fiber_stress.cc index ed7e4dcd5f408d0b6ee7c0b2cf1e8ce55a9aa8f0..927e4d14b5891866a0056e081df2c77a5fdb31fa 100644 --- a/test/unit/fiber_stress.cc +++ b/test/unit/fiber_stress.cc @@ -18,7 +18,7 @@ void benchmark_f(va_list ap) { struct fiber *fibers[FIBERS]; for (int i = 0; i < FIBERS; i++) { - fibers[i] = fiber_new("yield-wielder", yield_f); + fibers[i] = fiber_new_xc("yield-wielder", yield_f); fiber_wakeup(fibers[i]); } /** Wait for fibers to die. */ @@ -33,7 +33,7 @@ int main() { memory_init(); fiber_init(fiber_cxx_invoke); - struct fiber *benchmark = fiber_new("benchmark", benchmark_f); + struct fiber *benchmark = fiber_new_xc("benchmark", benchmark_f); fiber_wakeup(benchmark); ev_run(loop(), 0); fiber_free(); diff --git a/test/unit/ipc.cc b/test/unit/ipc.cc index eaded76c0f2a0b76f64643c048d35662fb27e23d..94b5f2a757a3da433e03d4f389be62224373553f 100644 --- a/test/unit/ipc.cc +++ b/test/unit/ipc.cc @@ -89,7 +89,7 @@ int main() { memory_init(); fiber_init(fiber_c_invoke); - struct fiber *main= fiber_new("main", main_f); + struct fiber *main= fiber_new_xc("main", main_f); fiber_wakeup(main); ev_run(loop(), 0); fiber_free(); diff --git a/test/unit/ipc_stress.cc b/test/unit/ipc_stress.cc index f44849e5f2debe1883914b805265bdbed073bb4b..64a0cc17d28dc8f4f0edf4e2d13c267204d79658 100644 --- a/test/unit/ipc_stress.cc +++ b/test/unit/ipc_stress.cc @@ -30,9 +30,9 @@ pop_f(va_list ap) void main_f(va_list ap) { header(); - struct fiber *push = fiber_new("push_f", push_f); + struct fiber *push = fiber_new_xc("push_f", push_f); fiber_set_joinable(push, true); - struct fiber *pop = fiber_new("pop_f", pop_f); + struct fiber *pop = fiber_new_xc("pop_f", pop_f); fiber_set_joinable(pop, true); struct ipc_channel *channel = ipc_channel_new(1); fiber_start(push, channel); @@ -48,7 +48,7 @@ int main() { memory_init(); fiber_init(fiber_c_invoke); - struct fiber *main= fiber_new("main", main_f); + struct fiber *main= fiber_new_xc("main", main_f); fiber_wakeup(main); ev_run(loop(), 0); fiber_free();