From 5d09d23368d1a8d9eab5cb5a0b48490d38dfd7e1 Mon Sep 17 00:00:00 2001 From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> Date: Thu, 22 Jun 2017 12:54:15 +0300 Subject: [PATCH] small: remove region.name --- src/fiber.c | 4 ++-- src/fiber.h | 5 +++-- src/lib/small | 2 +- test/unit/fiber.cc | 19 +++++++++++++++++++ test/unit/fiber.result | 8 ++++++++ 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/fiber.c b/src/fiber.c index 2d2237854d..2cf3140695 100644 --- a/src/fiber.c +++ b/src/fiber.c @@ -617,7 +617,7 @@ fiber_recycle(struct fiber *fiber) assert(rlist_empty(&fiber->state)); bool has_custom_stack = fiber->flags & FIBER_CUSTOM_STACK; fiber_reset(fiber); - fiber->gc.name[0] = '\0'; + fiber->name[0] = '\0'; fiber->f = NULL; memset(fiber->fls, 0, sizeof(fiber->fls)); unregister_fid(fiber); @@ -692,7 +692,7 @@ void fiber_set_name(struct fiber *fiber, const char *name) { assert(name != NULL); - region_set_name(&fiber->gc, name); + snprintf(fiber->name, sizeof(fiber->name), "%s", name); } extern inline void diff --git a/src/fiber.h b/src/fiber.h index ecfa78abf2..88747a52a1 100644 --- a/src/fiber.h +++ b/src/fiber.h @@ -50,7 +50,7 @@ extern "C" { #endif /* defined(__cplusplus) */ -enum { FIBER_NAME_MAX = REGION_NAME_MAX }; +enum { FIBER_NAME_MAX = 30 }; enum { /** @@ -384,6 +384,7 @@ struct fiber { void *fls[FIBER_KEY_MAX]; /** Exception which caused this fiber's death. */ struct diag diag; + char name[FIBER_NAME_MAX]; }; enum { FIBER_CALL_STACK = 16 }; @@ -528,7 +529,7 @@ fiber_set_name(struct fiber *fiber, const char *name); static inline const char * fiber_name(struct fiber *f) { - return region_name(&f->gc); + return f->name; } bool diff --git a/src/lib/small b/src/lib/small index 2e8d1a0e84..da2aa2c97b 160000 --- a/src/lib/small +++ b/src/lib/small @@ -1 +1 @@ -Subproject commit 2e8d1a0e84fb863f56a233f0925cb0eb18a52d6a +Subproject commit da2aa2c97bf76f73645326e9db36c4844bb5b691 diff --git a/test/unit/fiber.cc b/test/unit/fiber.cc index 2e75e58337..790141178d 100644 --- a/test/unit/fiber.cc +++ b/test/unit/fiber.cc @@ -141,9 +141,28 @@ fiber_join_test() footer(); } +void +fiber_name_test() +{ + header(); + note("name of a new fiber: %s.\n", fiber_name(fiber())); + + fiber_set_name(fiber(), "Horace"); + + note("set new fiber name: %s.\n", fiber_name(fiber())); + + fiber_set_name(fiber(), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + + note("fiber name is truncated: %s.\n", fiber_name(fiber())); + footer(); +} + static int main_f(va_list ap) { + fiber_name_test(); fiber_join_test(); ev_break(loop(), EVBREAK_ALL); return 0; diff --git a/test/unit/fiber.result b/test/unit/fiber.result index 2cd3fbc23d..9e597455b4 100644 --- a/test/unit/fiber.result +++ b/test/unit/fiber.result @@ -1,5 +1,13 @@ #gh-1238: log uncaught errors SystemError Failed to allocate 42 bytes in allocator for exception: Cannot allocate memory + *** fiber_name_test *** +# name of a new fiber: main. + +# set new region name: region. + +# fiber name is truncated: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa. + + *** fiber_name_test: done *** *** fiber_join_test *** # exception propagated # cancel dead has started -- GitLab