acelyc111 commented on code in PR #1272:
URL:
https://github.com/apache/incubator-pegasus/pull/1272#discussion_r1045532212
##########
src/meta/server_state.cpp:
##########
@@ -1259,6 +1259,102 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::rename_app_unlock(configuration_rename_app_rpc rpc)
+{
+ zauto_write_lock l(_lock);
+
+ const auto &old_app_name = rpc.request().old_app_name;
+ const auto &new_app_name = rpc.request().new_app_name;
+
+ auto target_app = get_app(old_app_name);
+ auto app_id = target_app->app_id;
+
+ auto ainfo = *(reinterpret_cast<app_info *>(target_app.get()));
+ ainfo.app_name = new_app_name;
+ auto app_path = get_app_path(*target_app);
+
+ target_app->app_name = new_app_name;
+ _exist_apps.emplace(new_app_name, target_app);
+
+ do_update_app_info(app_path, ainfo, [this, app_id, rpc](error_code ec)
mutable {
+ const auto &new_app_name = rpc.request().new_app_name;
+ const auto &old_app_name = rpc.request().old_app_name;
+ zauto_write_lock l(_lock);
+
+ if (ERR_OK != ec) {
+ _exist_apps.erase(new_app_name);
+ CHECK(false,
Review Comment:
This is will cause the process crash, you can use `CHECK_EQ(ERR_OK, ...)` as
before, `_exist_apps.erase(new_app_name);` is meanless because the process will
crash soon.
##########
src/meta/server_state.cpp:
##########
@@ -1259,6 +1259,102 @@ void server_state::drop_app(dsn::message_ex *msg)
}
}
+void server_state::rename_app_unlock(configuration_rename_app_rpc rpc)
+{
+ zauto_write_lock l(_lock);
Review Comment:
Since the function requires the lock itself, the function name should be
`do_rename_app` (or sth like that).
Further more, you can remove the lock if you pass `rpc`, `app_id`, and call
`_exist_apps.emplace(...)` in rename_app?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]