[tarantool-patches] [PATCH v4 2/9] core: latch_steal routine
Georgy Kirichenko
georgy at tarantool.org
Thu Jun 20 00:23:09 MSK 2019
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
More information about the Tarantool-patches
mailing list