Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: tarantool-patches@freelists.org
Cc: kostja@tarantool.org
Subject: [tarantool-patches] Re: [PATCH 5/5] swim: expose Lua triggers on member update
Date: Wed, 5 Jun 2019 23:54:00 +0200	[thread overview]
Message-ID: <34f824f7-77fd-7865-de59-5bf9d990466d@tarantool.org> (raw)
In-Reply-To: <0c433f21-734a-c755-110a-9b71a7172c99@tarantool.org>

There is names update:

=======================================================================

diff --git a/src/lua/swim.c b/src/lua/swim.c
index 17441e58c..c3a0a9911 100644
--- a/src/lua/swim.c
+++ b/src/lua/swim.c
@@ -36,26 +36,26 @@
 static uint32_t ctid_swim_member_ptr;
 static uint32_t ctid_swim_ptr;
 
-/** Push member update context into a Lua stack. */
+/** Push member event context into a Lua stack. */
 static int
-lua_swim_on_member_update_push(struct lua_State *L, void *event)
+lua_swim_member_event_push(struct lua_State *L, void *event)
 {
-	struct swim_on_member_update_ctx *ctx =
-		(struct swim_on_member_update_ctx *) event;
+	struct swim_on_member_event_ctx *ctx =
+		(struct swim_on_member_event_ctx *) event;
 	*(struct swim_member **) luaL_pushcdata(L, ctid_swim_member_ptr) =
 		ctx->member;
 	lua_pushinteger(L, ctx->events);
 	return 2;
 }
 
-/** Hang or/and delete a trigger on a SWIM member update. */
+/** Set or/and delete a trigger on a SWIM member event. */
 static int
-lua_swim_on_member_update(struct lua_State *L)
+lua_swim_on_member_event(struct lua_State *L)
 {
 	uint32_t ctypeid;
 	struct swim *s = *(struct swim **) luaL_checkcdata(L, 1, &ctypeid);
-	return lbox_trigger_reset(L, 3, swim_trigger_list_on_member_update(s),
-				  lua_swim_on_member_update_push, NULL);
+	return lbox_trigger_reset(L, 3, swim_trigger_list_on_member_event(s),
+				  lua_swim_member_event_push, NULL);
 }
 
 /**
@@ -98,7 +98,7 @@ tarantool_lua_swim_init(struct lua_State *L)
 	static const struct luaL_Reg lua_swim_internal_methods [] = {
 		{"swim_new", lua_swim_new},
 		{"swim_delete", lua_swim_delete},
-		{"swim_on_member_update", lua_swim_on_member_update},
+		{"swim_on_member_event", lua_swim_on_member_event},
 		{NULL, NULL}
 	};
 	luaL_register_module(L, "swim", lua_swim_internal_methods);
diff --git a/src/lua/swim.lua b/src/lua/swim.lua
index 9b8ff1c29..a7d5caab3 100644
--- a/src/lua/swim.lua
+++ b/src/lua/swim.lua
@@ -699,7 +699,7 @@ local function swim_pairs(s)
     return swim_pairs_next, {swim = s, iterator = iterator}, nil
 end
 
-local swim_on_member_update_index = {
+local swim_member_event_index = {
     is_new = function(self)
         return bit.band(self[1], capi.SWIM_EV_NEW) ~= 0
     end,
@@ -723,11 +723,11 @@ local swim_on_member_update_index = {
     end,
 }
 
-local swim_on_member_update_event_mt = {
-    __index = swim_on_member_update_index,
+local swim_member_event_mt = {
+    __index = swim_member_event_index,
     __serialize = function(self)
         local res = {}
-        for k, v in pairs(swim_on_member_update_index) do
+        for k, v in pairs(swim_member_event_index) do
             v = v(self)
             if v then
                 res[k] = v
@@ -739,42 +739,42 @@ local swim_on_member_update_event_mt = {
 
 --
 -- Create a closure function for preprocessing raw SWIM member
--- update trigger parameters.
+-- event trigger parameters.
 -- @param s SWIM instance.
 -- @param callback User functions to call.
 -- @param ctx An optional parameter for @a callback passed as is.
 -- @return A function to set as a trigger.
 --
-local function swim_on_member_update_new(s, callback, ctx)
+local function swim_on_member_event_new(s, callback, ctx)
     return function(member_ptr, event_mask)
         local m = swim_wrap_member(s, member_ptr)
-        local event = setmetatable({event_mask}, swim_on_member_update_event_mt)
+        local event = setmetatable({event_mask}, swim_member_event_mt)
         return callback(m, event, ctx)
     end
 end
 
 --
--- Add or/and delete a trigger on member update. Possible usages:
+-- Add or/and delete a trigger on member event. Possible usages:
 --
--- * on_member_update(new[, ctx]) - add a new trigger. It should
+-- * on_member_event(new[, ctx]) - add a new trigger. It should
 --   accept 3 arguments: an updated member, an events object, an
 --   optional @a ctx parameter passed as is.
 --
--- * on_member_update(new, old[, ctx]) - add a new trigger @a new
+-- * on_member_event(new, old[, ctx]) - add a new trigger @a new
 --   if not nil, in place of @a old trigger.
 --
--- * on_member_update() - get a list of triggers.
+-- * on_member_event() - get a list of triggers.
 --
-local function swim_on_member_update(s, new, old, ctx)
-    local ptr = swim_check_instance(s, 'swim:on_member_update')
+local function swim_on_member_event(s, new, old, ctx)
+    local ptr = swim_check_instance(s, 'swim:on_member_event')
     if type(old) ~= 'function' then
         ctx = old
         old = nil
     end
     if new ~= nil then
-        new = swim_on_member_update_new(s, new, ctx)
+        new = swim_on_member_event_new(s, new, ctx)
     end
-    return internal.swim_on_member_update(ptr, new, old)
+    return internal.swim_on_member_event(ptr, new, old)
 end
 
 --
@@ -796,7 +796,7 @@ local swim_mt = {
         set_payload = swim_set_payload,
         set_codec = swim_set_codec,
         pairs = swim_pairs,
-        on_member_update = swim_on_member_update,
+        on_member_event = swim_on_member_event,
     },
     __serialize = swim_serialize
 }
@@ -889,7 +889,7 @@ local swim_not_configured_mt = {
         delete = swim_delete,
         is_configured = swim_is_configured,
         set_codec = swim_set_codec,
-        on_member_update = swim_on_member_update,
+        on_member_event = swim_on_member_event,
     },
     __serialize = swim_serialize
 }
diff --git a/test/swim/swim.result b/test/swim/swim.result
index 1de903b04..0196837c8 100644
--- a/test/swim/swim.result
+++ b/test/swim/swim.result
@@ -1223,9 +1223,9 @@ s2:delete()
 s1 = swim.new()
 ---
 ...
-s1.on_member_update()
+s1.on_member_event()
 ---
-- error: 'builtin/swim.lua:<line>: swim:on_member_update: first argument is not a SWIM
+- error: 'builtin/swim.lua:<line>: swim:on_member_event: first argument is not a SWIM
     instance'
 ...
 m_list = {}
@@ -1263,7 +1263,7 @@ end;
 _ = test_run:cmd("setopt delimiter ''");
 ---
 ...
-t_save_event_id = s1:on_member_update(t_save_event, 'ctx')
+t_save_event_id = s1:on_member_event(t_save_event, 'ctx')
 ---
 ...
 -- Not equal, because SWIM wraps user triggers with a closure for
@@ -1301,7 +1301,7 @@ ctx_list
 m_list = {} e_list = {} ctx_list = {}
 ---
 ...
-t_yield_id = s1:on_member_update(t_yield, 'ctx2')
+t_yield_id = s1:on_member_event(t_yield, 'ctx2')
 ---
 ...
 f_need_sleep = true
@@ -1400,11 +1400,11 @@ ctx_list
 m_list = {} e_list = {} ctx_list = {}
 ---
 ...
-#s1:on_member_update()
+#s1:on_member_event()
 ---
 - 2
 ...
-s1:on_member_update(nil, t_yield_id)
+s1:on_member_event(nil, t_yield_id)
 ---
 ...
 s2:quit()
@@ -1413,7 +1413,7 @@ s2:quit()
 while s1:size() ~= 1 do fiber.sleep(0.01) end
 ---
 ...
--- Process update.
+-- Process event.
 fiber.sleep(0)
 ---
 ...
@@ -1453,7 +1453,7 @@ m_list[1] == m_list[2]
 m_list = {} e_list = {} ctx_list = {}
 ---
 ...
-s1:on_member_update(nil, t_save_event_id)
+s1:on_member_event(nil, t_save_event_id)
 ---
 ...
 s1:add_member({uuid = m:uuid(), uri = m:uri()})
@@ -1463,7 +1463,7 @@ s1:add_member({uuid = m:uuid(), uri = m:uri()})
 fiber.sleep(0)
 ---
 ...
--- No updates - all the triggers are dropped.
+-- No events - all the triggers are dropped.
 m_list
 ---
 - []
diff --git a/test/swim/swim.test.lua b/test/swim/swim.test.lua
index 25eb5a7d0..458e349e0 100644
--- a/test/swim/swim.test.lua
+++ b/test/swim/swim.test.lua
@@ -418,7 +418,7 @@ s2:delete()
 -- member drop, member update.
 --
 s1 = swim.new()
-s1.on_member_update()
+s1.on_member_event()
 
 m_list = {}
 e_list = {}
@@ -437,7 +437,7 @@ t_yield = function(m, e, ctx)
     while f_need_sleep do fiber.sleep(10000) end
 end;
 _ = test_run:cmd("setopt delimiter ''");
-t_save_event_id = s1:on_member_update(t_save_event, 'ctx')
+t_save_event_id = s1:on_member_event(t_save_event, 'ctx')
 -- Not equal, because SWIM wraps user triggers with a closure for
 -- context preprocessing.
 t_save_event_id ~= t_save_event
@@ -449,7 +449,7 @@ e_list
 ctx_list
 m_list = {} e_list = {} ctx_list = {}
 
-t_yield_id = s1:on_member_update(t_yield, 'ctx2')
+t_yield_id = s1:on_member_event(t_yield, 'ctx2')
 f_need_sleep = true
 s2 = swim.new({uuid = uuid(2), uri = uri(), heartbeat_rate = 0.01})
 s2:add_member({uuid = s1:self():uuid(), uri = s1:self():uri()})
@@ -472,12 +472,12 @@ m_list
 e_list
 ctx_list
 m_list = {} e_list = {} ctx_list = {}
-#s1:on_member_update()
+#s1:on_member_event()
 
-s1:on_member_update(nil, t_yield_id)
+s1:on_member_event(nil, t_yield_id)
 s2:quit()
 while s1:size() ~= 1 do fiber.sleep(0.01) end
--- Process update.
+-- Process event.
 fiber.sleep(0)
 -- Two events - status update to 'left', and 'drop'.
 m_list
@@ -488,10 +488,10 @@ m = m_list[1]
 m_list[1] == m_list[2]
 m_list = {} e_list = {} ctx_list = {}
 
-s1:on_member_update(nil, t_save_event_id)
+s1:on_member_event(nil, t_save_event_id)
 s1:add_member({uuid = m:uuid(), uri = m:uri()})
 fiber.sleep(0)
--- No updates - all the triggers are dropped.
+-- No events - all the triggers are dropped.
 m_list
 e_list
 ctx_list

  reply	other threads:[~2019-06-05 21:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-02  0:00 [tarantool-patches] [PATCH 0/5] SWIM on_member_update Vladislav Shpilevoy
2019-06-02  0:00 ` [tarantool-patches] [PATCH 1/5] test: create isolated ev_loop for swim unit tests Vladislav Shpilevoy
2019-06-05  6:51   ` [tarantool-patches] " Konstantin Osipov
2019-06-05 21:53     ` Vladislav Shpilevoy
2019-06-08 14:24       ` Konstantin Osipov
2019-06-02  0:00 ` [tarantool-patches] [PATCH 2/5] swim: fix a 'use after free' in SWIM tests Vladislav Shpilevoy
2019-06-05  6:52   ` [tarantool-patches] " Konstantin Osipov
2019-06-02  0:00 ` [tarantool-patches] [PATCH 3/5] swim: allow to hang triggers on member updates Vladislav Shpilevoy
2019-06-05  7:11   ` [tarantool-patches] " Konstantin Osipov
2019-06-05 21:53     ` Vladislav Shpilevoy
2019-06-07 13:35       ` Konstantin Osipov
2019-06-02  0:00 ` [tarantool-patches] [PATCH 4/5] swim: call swim:new/delete via Lua C, not via FFI Vladislav Shpilevoy
2019-06-08 14:24   ` [tarantool-patches] " Konstantin Osipov
2019-06-02  0:10 ` [tarantool-patches] [PATCH 5/5] swim: expose Lua triggers on member update Vladislav Shpilevoy
2019-06-05 21:54   ` Vladislav Shpilevoy [this message]
2019-06-08 14:29     ` [tarantool-patches] " Konstantin Osipov
     [not found] ` <12b8ea76f7c1cd100a80ddcea3c29d20354e073e.1559433539.git.v.shpilevoy@tarantool.org>
2019-06-08 14:27   ` Konstantin Osipov
2019-06-08 19:52     ` Vladislav Shpilevoy
2019-06-09  5:15       ` Konstantin Osipov
2019-06-09 16:41         ` Vladislav Shpilevoy

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=34f824f7-77fd-7865-de59-5bf9d990466d@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=kostja@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [PATCH 5/5] swim: expose Lua triggers on member update' \
    /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