diff --git a/libgo/go/runtime/os_aix.go b/libgo/go/runtime/os_aix.go
index 951aeb6..f49b83c 100644
--- a/libgo/go/runtime/os_aix.go
+++ b/libgo/go/runtime/os_aix.go
@@ -21,6 +21,10 @@
 	waitsema uintptr // semaphore for parking on locks
 }
 
+func getProcID() uint64 {
+	return uint64(gettid())
+}
+
 //extern malloc
 func libc_malloc(uintptr) unsafe.Pointer
 
diff --git a/libgo/go/runtime/os_gccgo.go b/libgo/go/runtime/os_gccgo.go
index ab19022..a8859c0 100644
--- a/libgo/go/runtime/os_gccgo.go
+++ b/libgo/go/runtime/os_gccgo.go
@@ -27,8 +27,7 @@
 func minit() {
 	minitSignals()
 
-	// FIXME: only works on linux for now.
-	getg().m.procid = uint64(gettid())
+	getg().m.procid = getProcID()
 }
 
 // Called from dropm to undo the effect of an minit.
diff --git a/libgo/go/runtime/os_hurd.go b/libgo/go/runtime/os_hurd.go
index b3c6f80..1613b41 100644
--- a/libgo/go/runtime/os_hurd.go
+++ b/libgo/go/runtime/os_hurd.go
@@ -18,6 +18,10 @@
 	waitsema uintptr // semaphore for parking on locks
 }
 
+func getProcID() uint64 {
+	return uint64(gettid())
+}
+
 //extern malloc
 func libc_malloc(uintptr) unsafe.Pointer
 
diff --git a/libgo/go/runtime/os_linux.go b/libgo/go/runtime/os_linux.go
index 5d55064..627b6d6 100644
--- a/libgo/go/runtime/os_linux.go
+++ b/libgo/go/runtime/os_linux.go
@@ -13,6 +13,10 @@
 	unused byte
 }
 
+func getProcID() uint64 {
+	return uint64(gettid())
+}
+
 func futex(addr unsafe.Pointer, op int32, val uint32, ts, addr2 unsafe.Pointer, val3 uint32) int32 {
 	return int32(syscall(_SYS_futex, uintptr(addr), uintptr(op), uintptr(val), uintptr(ts), uintptr(addr2), uintptr(val3)))
 }
diff --git a/libgo/go/runtime/os_netbsd.go b/libgo/go/runtime/os_netbsd.go
index 69d2c71..89a8d07 100644
--- a/libgo/go/runtime/os_netbsd.go
+++ b/libgo/go/runtime/os_netbsd.go
@@ -14,12 +14,19 @@
 	waitsemacount uint32
 }
 
+func getProcID() uint64 {
+	return uint64(lwp_self())
+}
+
+//extern _lwp_self
+func lwp_self() int32
+
 //go:noescape
-//extern lwp_park
+//extern _lwp_park
 func lwp_park(ts int32, rel int32, abstime *timespec, unpark int32, hint, unparkhint unsafe.Pointer) int32
 
 //go:noescape
-//extern lwp_unpark
+//extern _lwp_unpark
 func lwp_unpark(lwp int32, hint unsafe.Pointer) int32
 
 //go:noescape
@@ -88,7 +95,7 @@
 			tsp = &ts
 		}
 		ret := lwp_park(_CLOCK_MONOTONIC, _TIMER_RELTIME, tsp, 0, unsafe.Pointer(&_g_.m.waitsemacount), nil)
-		if ret == _ETIMEDOUT {
+		if ret != 0 && errno() == _ETIMEDOUT {
 			return -1
 		}
 	}
@@ -101,10 +108,10 @@
 	// "If the target LWP is not currently waiting, it will return
 	// immediately upon the next call to _lwp_park()."
 	ret := lwp_unpark(int32(mp.procid), unsafe.Pointer(&mp.waitsemacount))
-	if ret != 0 && ret != _ESRCH {
+	if ret != 0 && errno() != _ESRCH {
 		// semawakeup can be called on signal stack.
 		systemstack(func() {
-			print("thrwakeup addr=", &mp.waitsemacount, " sem=", mp.waitsemacount, " ret=", ret, "\n")
+			print("thrwakeup addr=", &mp.waitsemacount, " sem=", mp.waitsemacount, " errno=", errno(), "\n")
 		})
 	}
 }
diff --git a/libgo/go/runtime/os_solaris.go b/libgo/go/runtime/os_solaris.go
index 63b5cd7..c568629 100644
--- a/libgo/go/runtime/os_solaris.go
+++ b/libgo/go/runtime/os_solaris.go
@@ -10,6 +10,10 @@
 	waitsema uintptr // semaphore for parking on locks
 }
 
+func getProcID() uint64 {
+	return uint64(gettid())
+}
+
 //extern malloc
 func libc_malloc(uintptr) unsafe.Pointer
 
