From: Georgy Kirichenko <georgy@tarantool.org>
To: tarantool-patches@freelists.org
Cc: Georgy Kirichenko <georgy@tarantool.org>
Subject: [tarantool-patches] [PATCH v4 2/9] core: latch_steal routine
Date: Thu, 20 Jun 2019 00:23:09 +0300 [thread overview]
Message-ID: <de30d3057f97c2f28449f8d3b448dbbe486a6c1b.1560978655.git.georgy@tarantool.org> (raw)
In-Reply-To: <cover.1560978655.git.georgy@tarantool.org>
Allow to steal locked latch ownership for fiber which isn't owner
of the latch. This is required to process transaction triggers
asynchronously.
Prerequisites: #1254
---
src/lib/core/latch.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/lib/core/latch.h b/src/lib/core/latch.h
index 49c59cf63..580942564 100644
--- a/src/lib/core/latch.h
+++ b/src/lib/core/latch.h
@@ -155,6 +155,16 @@ latch_trylock(struct latch *l)
return latch_lock_timeout(l, 0);
}
+/**
+ * Take a latch ownership
+ */
+static inline void
+latch_steal(struct latch *l)
+{
+ assert(l->owner != NULL);
+ l->owner = fiber();
+}
+
/**
* \copydoc box_latch_unlock
*/
--
2.22.0
next prev parent reply other threads:[~2019-06-19 21:23 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-19 21:23 [tarantool-patches] [PATCH v4 0/9] Parallel applier Georgy Kirichenko
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 1/9] txn: handle fiber stop event at transaction level Georgy Kirichenko
2019-06-20 7:28 ` [tarantool-patches] " Konstantin Osipov
2019-06-20 11:39 ` [tarantool-patches] " Vladimir Davydov
2019-06-19 21:23 ` Georgy Kirichenko [this message]
2019-06-20 7:28 ` [tarantool-patches] Re: [PATCH v4 2/9] core: latch_steal routine Konstantin Osipov
2019-06-20 11:53 ` [tarantool-patches] " Vladimir Davydov
2019-06-20 20:34 ` Георгий Кириченко
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 3/9] txn: get rid of autocommit from a txn structure Georgy Kirichenko
2019-06-20 7:32 ` [tarantool-patches] " Konstantin Osipov
2019-06-20 11:52 ` [tarantool-patches] " Vladimir Davydov
2019-06-20 20:16 ` Георгий Кириченко
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 4/9] txn: get rid of fiber_gc from txn_rollback Georgy Kirichenko
2019-06-20 7:43 ` [tarantool-patches] " Konstantin Osipov
2019-06-20 20:35 ` Георгий Кириченко
2019-06-20 13:03 ` [tarantool-patches] " Vladimir Davydov
2019-06-20 20:16 ` Георгий Кириченко
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 5/9] wal: a dedicated wal scheduling fiber Georgy Kirichenko
2019-06-20 7:53 ` [tarantool-patches] " Konstantin Osipov
2019-06-20 13:05 ` [tarantool-patches] " Vladimir Davydov
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 6/9] wal: introduce a journal entry finalization callback Georgy Kirichenko
2019-06-20 7:56 ` [tarantool-patches] " Konstantin Osipov
2019-06-20 14:08 ` [tarantool-patches] " Vladimir Davydov
2019-06-20 20:22 ` Георгий Кириченко
2019-06-21 7:26 ` [tarantool-patches] " Konstantin Osipov
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 7/9] txn: introduce asynchronous txn commit Georgy Kirichenko
2019-06-20 8:01 ` [tarantool-patches] " Konstantin Osipov
2019-06-20 15:00 ` [tarantool-patches] " Vladimir Davydov
2019-06-21 7:28 ` [tarantool-patches] " Konstantin Osipov
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 8/9] applier: apply transaction in parallel Georgy Kirichenko
2019-06-20 7:41 ` [tarantool-patches] " Георгий Кириченко
2019-06-20 8:07 ` Konstantin Osipov
2019-06-20 16:37 ` Vladimir Davydov
2019-06-20 20:33 ` Георгий Кириченко
2019-06-21 8:36 ` Vladimir Davydov
2019-06-20 8:06 ` Konstantin Osipov
2019-06-19 21:23 ` [tarantool-patches] [PATCH v4 9/9] test: fix flaky test Georgy Kirichenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=de30d3057f97c2f28449f8d3b448dbbe486a6c1b.1560978655.git.georgy@tarantool.org \
--to=georgy@tarantool.org \
--cc=tarantool-patches@freelists.org \
--subject='Re: [tarantool-patches] [PATCH v4 2/9] core: latch_steal routine' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox