Просмотр исходного кода

ncd: don't abort if close fails

ambrop7 13 лет назад
Родитель
Сommit
2216d83b02
3 измененных файлов с 12 добавлено и 4 удалено
  1. 6 2
      ncd/NCDRfkillMonitor.c
  2. 3 1
      ncd/modules/sys_evdev.c
  3. 3 1
      ncd/modules/sys_watch_directory.c

+ 6 - 2
ncd/NCDRfkillMonitor.c

@@ -96,7 +96,9 @@ int NCDRfkillMonitor_Init (NCDRfkillMonitor *o, BReactor *reactor, NCDRfkillMoni
     return 1;
     
 fail1:
-    ASSERT_FORCE(close(o->rfkill_fd) == 0)
+    if (close(o->rfkill_fd) < 0) {
+        BLog(BLOG_ERROR, "close failed");
+    }
 fail0:
     return 0;
 }
@@ -109,5 +111,7 @@ void NCDRfkillMonitor_Free (NCDRfkillMonitor *o)
     BReactor_RemoveFileDescriptor(o->reactor, &o->bfd);
     
     // close rfkill
-    ASSERT_FORCE(close(o->rfkill_fd) == 0)
+    if (close(o->rfkill_fd) < 0) {
+        BLog(BLOG_ERROR, "close failed");
+    }
 }

+ 3 - 1
ncd/modules/sys_evdev.c

@@ -182,7 +182,9 @@ static void func_new (void *vo, NCDModuleInst *i)
     return;
     
 fail1:
-    ASSERT_FORCE(close(o->evdev_fd) == 0)
+    if (close(o->evdev_fd) < 0) {
+        ModuleLog(o->i, BLOG_ERROR, "close failed");
+    }
 fail0:
     NCDModuleInst_Backend_SetError(i);
     NCDModuleInst_Backend_Dead(i);

+ 3 - 1
ncd/modules/sys_watch_directory.c

@@ -302,7 +302,9 @@ fail3:
     // free BFileDescriptor
     BReactor_RemoveFileDescriptor(o->i->iparams->reactor, &o->bfd);
 fail2:
-    ASSERT_FORCE(close(o->inotify_fd) == 0)
+    if (close(o->inotify_fd) < 0) {
+        ModuleLog(o->i, BLOG_ERROR, "close failed");
+    }
 fail1:
     free(o);
 fail0: