$OpenBSD: patch-timer_c,v 1.1 2012/04/22 21:44:24 sthen Exp $
--- timer.c.orig	Sun Feb  5 00:24:53 2012
+++ timer.c	Sun Feb  5 00:33:11 2012
@@ -337,7 +337,7 @@ again:
 				strerror(errno), errno);
 		goto error;
 	}
-#ifdef __OS_darwin
+#if defined(__OS_darwin) ||  defined(__OpenBSD__)
 	/* workaround for darwin sigwait bug, see slow_timer_main() for more
 	   info (or grep __OS_darwin) */
 	/* keep in sync wih main.c: sig_usr() - signals we are interested in */
@@ -1090,7 +1090,7 @@ ticks_t get_ticks()
  *   -it  increments *s_idx (at the end it will be == *t_idx)
  *   -all list operations are protected by the "slow" timer lock
  */
-#ifdef __OS_darwin
+#if defined(__OS_darwin) || defined(__OpenBSD__)
 extern void sig_usr(int signo);
 #endif
 
@@ -1120,7 +1120,7 @@ void slow_timer_main()
 		}
 #ifdef USE_SIGWAIT
 	if (sig!=SLOW_TIMER_SIG){
-#ifdef __OS_darwin
+#if defined(__OS_darwin) || defined(__OpenBSD__)
 		/* on darwin sigwait is buggy: it will cause extreme slow down
 		   on signal delivery for the signals it doesn't wait on
 		   (on darwin 8.8.0, g4 1.5Ghz I've measured a 36s delay!).
