/**< ZigBee Service */
ZigBeeService *zigbee_service;
+static gboolean _request_terminate(gpointer user_data)
+{
+ NOTUSED(user_data);
+
+ zblib_service_exit(zigbee_service);
+
+ return G_SOURCE_REMOVE;
+}
+
int main(int arg, char **argv)
{
ZigBeeService *service = NULL;
NOTUSED(arg);
NOTUSED(argv);
- Z_LOGI("service mainloop start");
-
/* Create ZigBee service */
zigbee_service = service = zblib_service_new();
ret = zigbee_service_init(service);
if (G_UNLIKELY(FALSE == ret)) {
Z_LOGE("zigbee_service_init failed!");
- goto END;
+ /* Minimum mainloop time is required to notify the result */
+ g_timeout_add(100, _request_terminate, NULL);
}
/* Run ZigBee service */
+ Z_LOGI("service mainloop start");
ret = zblib_service_run(service);
if (G_UNLIKELY(FALSE == ret)) {
Z_LOGE("Run service failed!");