Skip to content
Snippets Groups Projects
Commit c7c9d420 authored by Iskander Sagitov's avatar Iskander Sagitov Committed by Nikita Pettik
Browse files

fiber: set fiber->csw = 0 for every creating fiber

It is strange to create a new fiber and see that it has yielded 100
times, when in fact it never actually did it.

The patch makes fiber->csw = 0 for each created fiber.

Follow-up #5799
parent 9da7e03e
No related branches found
No related tags found
No related merge requests found
## feature/fiber
* Previously csw (Context SWitch) of new fiber can be more than 0, now it is always 0 (gh-5799).
......@@ -1260,6 +1260,7 @@ fiber_new_ex(const char *name, const struct fiber_attr *fiber_attr,
fiber->fid = cord->next_fid;
fiber_set_name(fiber, name);
register_fid(fiber);
fiber->csw = 0;
cord->next_fid++;
assert(cord->next_fid > FIBER_ID_MAX_RESERVED);
......
......@@ -26,11 +26,9 @@ test_run:cmd('setopt delimiter ";"')
| ...
for i=1,100 do
fibers[i] = fiber.new(function()
local start_csw = fiber.info()[fiber.self():id()].csw
for j=1,10 do
fiber.yield()
if j + start_csw == fiber.self():csw() and
j + start_csw == fiber.self():info().csw then
if j == fiber.self():csw() and j == fiber.self():info().csw then
csw_check_counter = csw_check_counter + 1
end
end
......
......@@ -10,11 +10,9 @@ fibers = {}
test_run:cmd('setopt delimiter ";"')
for i=1,100 do
fibers[i] = fiber.new(function()
local start_csw = fiber.info()[fiber.self():id()].csw
for j=1,10 do
fiber.yield()
if j + start_csw == fiber.self():csw() and
j + start_csw == fiber.self():info().csw then
if j == fiber.self():csw() and j == fiber.self():info().csw then
csw_check_counter = csw_check_counter + 1
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment