[Tarantool-patches] [PATCH 0/2] fiber_wakeup() nop on self

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Sat Apr 24 02:15:52 MSK 2021


The patchset makes fiber_wakeup() in C and fiber.wakeup() in Lua
nop when called on the current fiber. This fixes a couple of
crashes in the public API, and prevent spurious wakeups in
certain cases.

Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-5292-6043-fiber-wakeup-nop
Issue: https://github.com/tarantool/tarantool/issues/5292
Issue: https://github.com/tarantool/tarantool/issues/6043

Vladislav Shpilevoy (2):
  fiber: make wakeup in Lua and C nop on self
  fiber: use wakeup safely on self everywhere

 .../unreleased/gh-6043-fiber-wakeup-self.md   | 33 +++++++
 src/box/applier.cc                            |  4 +-
 src/box/journal.c                             |  6 ++
 src/box/journal.h                             |  7 ++
 src/box/raft.c                                | 14 +--
 src/box/txn.c                                 |  6 +-
 src/box/txn_limbo.c                           | 14 +--
 src/lib/core/fiber.c                          | 85 +++++++++++--------
 src/lib/core/fiber.h                          |  6 +-
 src/lib/swim/swim.c                           |  1 -
 .../gh-6043-fiber-wakeup-self.test.lua        | 50 +++++++++++
 test/unit/fiber.cc                            | 33 ++++++-
 test/unit/fiber.result                        |  2 +
 test/unit/fiber_stress.cc                     |  6 +-
 14 files changed, 191 insertions(+), 76 deletions(-)
 create mode 100644 changelogs/unreleased/gh-6043-fiber-wakeup-self.md
 create mode 100755 test/app-tap/gh-6043-fiber-wakeup-self.test.lua

-- 
2.24.3 (Apple Git-128)



More information about the Tarantool-patches mailing list