[M3commit] CVS Update: cm3

Tony Hosking hosking at cs.purdue.edu
Mon Dec 14 16:39:31 CET 2009


Main thread should call Yield if you want that behavior, not sleep.

On 14 Dec 2009, at 14:57, Jay Krell wrote:

> CVSROOT:	/usr/cvs
> Changes by:	jkrell at birch.	09/12/14 14:57:30
> 
> Added files:
> 	cm3/m3-libs/m3core/src/unix/Common/context/sigaltstack/: 
> 	                                                         Makefile 
> 	                                                         config.c 
> 	                                                         context.c 
> 	                                                         context.h 
> 	                                                         m3makefile 
> 	                                                         tcontext.c 
> 
> Log message:
> 	working version of http://www.engelschall.com/pw/usenix/2000/pmt-html/
> 	- This should be moved to m3core/src/thread/POSIX
> 	- Notice how I switched from virtual timer to real timer,
> 	in the test case that mimics m3core/src/thread/POSIX.
> 	"This seems to work much better."
> 	In particular, if the main thread does while (1) sleep(0)
> 	to let things run, nothing runs. The virtual time doesn't
> 	run down at all. If I make it a busy wait "while (1) ;" then
> 	it does work.
> 	
> 	Note that Apple seems very down on supplying get/make/set/swapcontext (read the mailing lists).
> 	This solution might be preferred? Though it is slower to create a thread here, due to
> 	extra gymnastics to establish the initial context.
> 	
> 	Also still some experiments to try.
> 	_setjmp vs. setjmp vs. sigsetjmp.
> 	Best is probably sigsetjmp(1).
> 	using the same signal in both parts

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20091214/9eee8dc3/attachment-0002.html>


More information about the M3commit mailing list