[M3devel] [M3commit] CVS Update: cm3

Tony Hosking hosking at cs.purdue.edu
Mon Jan 12 07:53:02 CET 2009


Why does sysutils need to be compatible with both old and new versions  
of m3core?

On 12 Jan 2009, at 17:39, Jay wrote:

> ThreadPosix is basically unaffected -- I never provided user threads  
> on Cygwin.
>  I guess it got a slight reduction regarding DoesWaitPidYield, but  
> its SchedulerPosix implementation was unchanged.
>
> The code in ThreadPosix is similar to but different than  
> ThreadPThread.
> It is possible they could be merged but it wasn't trivial so I left  
> ThreadPosix alone.
>
>  > You are smearing implementation details across multiple files and  
> directories
>
> You really think it is bad to have SchedulerPosix implemented in a  
> small separate file?
> On top of what happens to be common implementation details of  
> ThreadPThread.m3 and ThreadWin32.m3?
>
> ThreadPScheduler.m3 is just basically three functions: IOWait,  
> IOAlertWait, XIOWait
> Plus the little internal utility, UTimeFromTime, the one liner  
> DoesWaitPidYield, and non-trivial functions nested in XIOWait:  
> TestFDS, CallSelect.
>
> I mean, you know, an alternative is to copy out very large chunks of  
> ThreadWin32.m3 and ThreadPThread.m3 and merge them into  
> ThreadCygwin.m3. That would be worse imho.
>
> "Directories" hardly.
>
> Or I can try debugging cygwin pthreads again.
>
>  - Jay
>
>
> CC: jkrell at elego.de; m3devel at elegosoft.com
> From: hosking at cs.purdue.edu
> To: jay.krell at cornell.edu
> Subject: Re: [M3devel] [M3commit] CVS Update: cm3
> Date: Mon, 12 Jan 2009 12:46:54 +1100
>
> You are smearing implementation details across multiple files and  
> directories.  Up until now, ThreadPThread has been nicely self- 
> contained, and captured all the basic pieces of the thread  
> implementation.  Also, how does all of this fit with the ThreadPosix  
> implementation?
>
> On 12 Jan 2009, at 12:19, Jay wrote:
>
> btw, I don't think it's that hairy, I merely split it into two or  
> three files, and added interfaces so they can reuse code with each  
> other. Movement between files is hard to track though (depending on  
> version control, but with all I've used).
>
> The SchedulerPosix implementation moved to ThreadPScheduler.m3.
> What is shared between it and ThreadPThread/Win32.m3 is  
> ThreadInternal.i3, which maybe should be in ThreadF.i3, though  
> that's exposed outside m3core, and ThreadInternal.i3 includes a  
> variable.
>
> I can try again to debug Cygwin pthreads though.
>
>  - Jay
>
>
> > From: hosking at cs.purdue.edu
> > To: jkrell at elego.de
> > Date: Mon, 12 Jan 2009 11:03:33 +1100
> > CC: m3devel at elegosoft.com
> > Subject: Re: [M3devel] [M3commit] CVS Update: cm3
> >
> > Jay,
> >
> > Can you remind me again why Cygwin was unable to use pthreads? It
> > seems you have introduced a bunch of hair into the PTHREADS
> > implementation to deal with broken Cygwin pthreads. As many of us
> > have already pointed out, Cygwin should be a port that tries as much
> > as possible to be like a standard POSIX platform (pthread-based) as
> > opposed to a weird Windows/POSIX hybrid.
> >
> > I have a bunch of code that will be going into the PTHREADS base  
> that
> > I am now at a loss to integrate with the changes you have made.
> >
> > Help!
> >
> > -- Tony
> >
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090112/23c615d2/attachment-0002.html>


More information about the M3devel mailing list