[M3commit] select vs. poll
Jay K
jay.krell at cornell.edu
Sat Apr 17 16:20:32 CEST 2010
It is no longer relevant though right?
And hasn't been for over 10 years?
#ifdef and use select optionally?
Could do that in the C most likely.
I've actually only built this on Linux and/or Darwin. And checked various manpages...er, at least Solaris. I'd have to double double check Free/Open/NetBSD/Darwin..
The somewhat fixed limit of select bugs me.
And then it bugs that the Modula-3 is written to work with arbitrary large numbers, but by cloning the headers in a "hidden" way.
With poll we get no cloning and no limit. And since we are only waiting on one fd, we allocate just a fixed tiny amount of memory.
Still to consider the user thread stuff though.
Gosh, I wonder what OpenBSD pthreads do here...
- Jay
> From: hosking at cs.purdue.edu
> Date: Sat, 17 Apr 2010 09:15:08 -0400
> To: jkrell at elego.de
> CC: m3commit at elegosoft.com
> Subject: Re: [M3commit] CVS Update: cm3
>
> Just a historical note. select was 4.2BSD. poll was AT&T System V UNIX. In the bad old days the different Unixes had different APIs. In the early days when Modula-3 user threads were written they were running on BSD systems.
>
> On 17 Apr 2010, at 12:15, Jay Krell wrote:
>
> > CVSROOT: /usr/cvs
> > Changes by: jkrell at birch. 10/04/17 12:15:33
> >
> > Modified files:
> > cm3/m3-libs/m3core/src/thread/Common/: SchedulerPosix.i3
> > ThreadInternal.c
> > ThreadInternal.i3
> > cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3
> > cm3/m3-libs/m3core/src/thread/WIN32/: SchedulerPosix.m3
> >
> > Log message:
> > switch pthreads and cygwin from select to poll
> > They only wait for one file at a time, so the change is easier.
> >
> > Leave userthreads using select.
> > It waits for multiple, so the change is a bit more.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3commit/attachments/20100417/dec8e2b9/attachment-0002.html>
More information about the M3commit
mailing list