bsd
diff --git a/src/libthread/386-ucontext.h b/src/libthread/386-ucontext.h
index 57fd1bd..00af62a 100644
--- a/src/libthread/386-ucontext.h
+++ b/src/libthread/386-ucontext.h
@@ -5,6 +5,8 @@
 
 extern	int		swapcontext(ucontext_t*, ucontext_t*);
 extern	void		makecontext(ucontext_t*, void(*)(), int, ...);
+extern	int		getmcontext(mcontext_t*);
+extern	void		setmcontext(mcontetx_t*);
 
 /*-
  * Copyright (c) 1999 Marcel Moolenaar
diff --git a/src/libthread/BSD.c b/src/libthread/BSD.c
index fdbc712..b9e8888 100644
--- a/src/libthread/BSD.c
+++ b/src/libthread/BSD.c
@@ -33,7 +33,7 @@
 	for(i=0; i<1000; i++){
 		if(!_tas(&l->held))
 			return 1;
-		sched_yield();
+		sleep(0);
 	}
 	/* increasingly slow */
 	for(i=0; i<10; i++){
diff --git a/src/libthread/OpenBSD-386-asm.s b/src/libthread/OpenBSD-386-asm.s
index 7ffb413..1a59436 100644
--- a/src/libthread/OpenBSD-386-asm.s
+++ b/src/libthread/OpenBSD-386-asm.s
@@ -96,4 +96,5 @@
 	movl    %ebp, %esp
 	popl    %ebp
 	PIC_PROLOGUE
-	jmp     PIC_PLT(_C_LABEL(__cerror))
\ No newline at end of file
+	jmp     PIC_PLT(_C_LABEL(__cerror))
+