[M3commit] CVS Update: cm3

Tony Hosking hosking at cs.purdue.edu
Sun Feb 3 06:01:37 CET 2008


I would prefer to do this in pure Modula-3 by calling the initializer  
functions explicitly.  I'll take a look at it.

On Feb 3, 2008, at 3:06 AM, Jay Krell wrote:

> CVSROOT:	/usr/cvs
> Changes by:	jkrell at birch.	08/02/03 03:06:27
>
> Modified files:
> 	cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3
> 	                                        m3makefile
> Added files:
> 	cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.i3
> 	                                        ThreadPThreadC.c
>
> Log message:
> 	Cygwin static initializers are not all zeros and Modula-3 static
> 	initialization happens after at least some of this data is used,
> 	so move it to C to guarantee actual static initialization.
> 	This fixes the problem where Cygwin/NT386GNU issues an endless stream
> 	of assertion failures upon start, at each pthread_mutex_lock call.
> 	Cygwin/NT386GNU still hangs at startup, since nanosleep is failing,
> 	and there is an access violation to investigate. Cygwin does
> 	strange things with the stack..reserving a block at the start for
> 	their thread locals and getting to it via fs:4.




More information about the M3commit mailing list