#include <list>
#include <memory>
+#include <mutex>
#include <type_traits>
#include "service_app_extension.h"
}
void OnLoopInit(int argc, char** argv) override {
- if (method_.init)
+ if (method_.init) {
method_.init(argc, argv, data_);
- else
+ } else {
+ _W("ecore_init");
ecore_init();
+ }
}
void OnLoopFinish() override {
- if (method_.fini)
+ if (method_.fini) {
method_.fini();
- else
+ } else {
+ _W("ecore_shutdown");
ecore_shutdown();
+ }
}
void OnLoopRun() override {
}
void OnLoopExit() override {
+ SetAppState(APP_STATE_NOT_RUNNING);
if (method_.exit) {
method_.exit(data_);
} else {
}
void SetAppState(AppState state) {
+ std::lock_guard<std::recursive_mutex> lock(mutex_);
state_ = state;
}
service_app_loop_method_s method_;
void* data_;
AppState state_ = APP_STATE_NOT_RUNNING;
+ mutable std::recursive_mutex mutex_;
};
std::unique_ptr<AppContext> __context;