Fixed issue: bus-launcher didn't start screen-reader after reader crash. 91/49791/2
authorTomasz Olszak <t.olszak@samsung.com>
Thu, 3 Sep 2015 14:13:53 +0000 (16:13 +0200)
committerTomasz Olszak <t.olszak@samsung.com>
Fri, 23 Oct 2015 14:56:27 +0000 (16:56 +0200)
Change-Id: Ic19ae2b029a4bae79e1cd1cb7300f5d59acf5722

bus/at-spi-bus-launcher.c

index b6f7f01..73c8a73 100644 (file)
@@ -705,6 +705,15 @@ void screen_reader_cb(keynode_t *node, void *user_data)
    if (ret < 0)
      return;
 
+   //check if process really exists (e.g didn't crash)
+   if (bl->pid > 0)
+     {
+        int err = kill(bl->pid,0);
+        //process doesn't exist
+        if (err == ESRCH)
+          bl->pid = 0;
+     }
+
    bl->screen_reader_needed = ret;
    LOGD("bl->screen_reader_needed: %i, bl->pid: %i", ret, bl->pid);
    if (!bl->screen_reader_needed && (bl->pid > 0))