BSD: Add thread ID support for OpenBSD > 5.1
authorPete Batard <pete@akeo.ie>
Tue, 8 May 2012 11:10:59 +0000 (12:10 +0100)
committerPete Batard <pete@akeo.ie>
Tue, 8 May 2012 11:10:59 +0000 (12:10 +0100)
* Uses syscall(SYS_getthrid) which requires real thread support,
  currently only available in 5.1-current (but not 5.1-release).
  For OpenBSD <= 5.1, -1 will be returned for the thread ID.

libusb/os/threads_posix.c
libusb/version.h

index 8e9b490..20f279a 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#if defined(__linux__)
+#if defined(__linux__) || defined(__OpenBSD__)
 # include <unistd.h>
 # include <sys/syscall.h>
 #elif defined(__APPLE__)
@@ -66,10 +66,14 @@ int usbi_get_tid(void)
        int ret = -1;
 #if defined(__linux__)
        ret = syscall(SYS_gettid);
+#elif defined(__OpenBSD__)
+       /* The following only works with OpenBSD > 5.1 as it requires
+          real thread support. For 5.1 and earlier, -1 is returned. */
+       ret = syscall(SYS_getthrid);
 #elif defined(__APPLE__)
        ret = mach_thread_self();
        mach_port_deallocate(mach_task_self(), ret);
 #endif
-/* TODO: OpenBSD and NetBSD thread ID support */
+/* TODO: NetBSD thread ID support */
        return ret;
 }
index 704ac39..dfc15f1 100644 (file)
@@ -9,7 +9,7 @@
 #define LIBUSB_MICRO 11
 #endif
 #ifndef LIBUSB_NANO
-#define LIBUSB_NANO 10495
+#define LIBUSB_NANO 10496
 #endif
 /* LIBUSB_RC is the release candidate suffix. Should normally be empty. */
 #ifndef LIBUSB_RC