Skip to content

Commit 55819f0

Browse files
committed
native service: Terminate ambient lighting daemon before terminating self
1 parent cc6c321 commit 55819f0

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

service/src/main.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,22 +333,29 @@ bool service_method_status(LSHandle* sh, LSMessage* msg, void* data)
333333
return true;
334334
}
335335

336-
bool service_method_terminate(LSHandle* sh, LSMessage* msg, void* data __attribute__((unused)))
336+
bool service_method_terminate(LSHandle* sh, LSMessage* msg, void* data)
337337
{
338+
service_t* service = (service_t*)data;
338339
LSError lserror;
339340
LSErrorInit(&lserror);
340341

341342
WARN("Terminating");
342343

344+
int res = daemon_terminate(service);
345+
343346
jvalue_ref jobj = jobject_create();
344-
jobject_set(jobj, j_cstr_to_buffer("returnValue"), jboolean_create(true));
347+
jobject_set(jobj, j_cstr_to_buffer("returnValue"), jboolean_create(res == 0));
345348

346349
LSMessageReply(sh, msg, jvalue_tostring_simple(jobj), &lserror);
347350

348351
j_release(&jobj);
349352

350-
// Stopping mainloop!
351-
g_main_loop_quit(gmainLoop);
353+
if (res == 0) {
354+
// Stopping mainloop!
355+
g_main_loop_quit(gmainLoop);
356+
} else {
357+
ERR("Failed to terminate self, daemon was not able to stop");
358+
}
352359

353360
return true;
354361
}

0 commit comments

Comments
 (0)