SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_C_FLAGS_RELEASE "-O2")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} -std=c++14")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} -std=c++17")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
Job job([=]() -> Job::Type {
int res = Check(fd, sender_appid);
auto* cbdata = new std::pair<CompleteCallback, int>(callback, res);
- if (callback != nullptr) {
- g_idle_add(
- [](gpointer data) -> gboolean {
- auto* cbdata = static_cast<std::pair<CompleteCallback, int>*>(data);
- auto [callback, res] = *cbdata;
- callback(res);
- delete (cbdata);
- return G_SOURCE_REMOVE;
- }, cbdata);
+ guint sid = g_idle_add(
+ [](gpointer data) -> gboolean {
+ auto* cbdata = static_cast<std::pair<CompleteCallback, int>*>(data);
+ auto [callback, res] = *cbdata;
+ callback(res);
+ delete cbdata;
+ return G_SOURCE_REMOVE;
+ }, cbdata);
+ if (sid == 0) {
+ _E("Failed to call g_idle_add");
+ delete cbdata;
}
return Job::Type::Continue;
Job::Job(Job::JobHandlerCallback cb) : cb_(std::move(cb)) {}
-Job::Job() : cb_([]() { return Job::Type::Finish; }) {}
-
Job::Type Job::Do() {
+ if (cb_ == nullptr)
+ return Job::Type::Finish;
+
return cb_();
}
using JobHandlerCallback = std::function<Type(void)>;
- explicit Job(JobHandlerCallback cb);
- Job();
+ explicit Job(JobHandlerCallback cb = nullptr);
~Job() = default;
main_port_.reset(new ProxyPort(this, fds_[0], target_appid_, false));
delegate_port_.reset(new ProxyPort(this, fds_[1], target_appid_));
- DebugPort::AddSession(port_name, target_appid_, fds_[0], fds_[1]);
+ DebugPort::AddSession(port_name_, target_appid_, fds_[0], fds_[1]);
listener_->OnConnected(target_appid_, main_port_.get());
return RPC_PORT_ERROR_NONE;
}