gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r2862 - GNUnet/src/util


From: grothoff
Subject: [GNUnet-SVN] r2862 - GNUnet/src/util
Date: Sat, 20 May 2006 03:49:51 -0700 (PDT)

Author: grothoff
Date: 2006-05-20 03:49:49 -0700 (Sat, 20 May 2006)
New Revision: 2862

Modified:
   GNUnet/src/util/semaphore.c
Log:
correct error handling -- new pthread detection maybe wrong, better not assert 
at all

Modified: GNUnet/src/util/semaphore.c
===================================================================
--- GNUnet/src/util/semaphore.c 2006-05-20 10:12:36 UTC (rev 2861)
+++ GNUnet/src/util/semaphore.c 2006-05-20 10:49:49 UTC (rev 2862)
@@ -332,11 +332,6 @@
 void PTHREAD_GET_SELF(PTHREAD_T * pt) {
   pt->internal = MALLOC(sizeof(pthread_t));
   *((pthread_t*)pt->internal) = pthread_self();
-#ifdef HAVE_NEW_PTHREAD_T
-  GNUNET_ASSERT(NULL != ((pthread_t*)pt->internal)->p);
-#else
-  GNUNET_ASSERT(NULL != *((pthread_t*)pt->internal));
-#endif
 }
 
 /**
@@ -441,14 +436,30 @@
 void PTHREAD_KILL(PTHREAD_T * pt,
                  int signal) {
   pthread_t * handle;
+  int ret;
 
   handle = pt->internal;
   if (handle == NULL) {
     BREAK();
     return;
   }
-  if (0 != pthread_kill(*handle, signal))
-    LOG_STRERROR(LOG_ERROR, "pthread_kill");
+  ret = pthread_kill(*handle, signal);
+  switch (ret) {
+  case 0: 
+    break; /* ok */
+  case EINVAL:
+    LOG(LOG_ERROR, 
+       _("pthread_kill failed (invalid signal number)"));
+    break;
+  case ESRCH:
+    LOG(LOG_ERROR, 
+       _("pthread_kill failed (no such thread)"));
+    break;
+  default:
+    LOG(LOG_ERROR, 
+       _("pthread_kill failed (unknown error)"));
+    break;    
+  }
 }
 
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]