logo       
Bookmark and Share

IO and Process Scheduler: msg#00027

lang.smalltalk.gnu.general

Subject: IO and Process Scheduler

Moin Guru's,

i've walked through the C code of GST 2.1.10 to realised, that
IO is blocking the complete Smalltalk system and not only a
co-process. I think FileOp: 3, 4, 13 and 14 should yield()
interp.c>>next_scheduled_process() which would use the select()
system call to deceide for the next co-process to run. This
feature should be a flag for files, and turned off by default
for performance reasons and atomic contrains.

The alternate would be to provide a select() primitive. So
a MUD server is a single Smalltalk process implementing its
own scheduler.

I might have a patch against libgst/{prims.def,input.c,interp.c,...}
within the week - but the questions beforehands :
- has anyone already implemented a FileOp: select() primitive ?
- is anyone interested in cross reading and testing the patch ?
- is 2.1.10 a good start - or where to find active CVS development ?

last not least, i've suggest to change the EMACS interface to use
IAC GA "\377\371" to signal the prompt conforming to 854 line mode
telnet, so one could exchange the EMACS interface with other clients.
It would be even better to move the prompt from input.c>>my_getc()
to somewhere higher in Smalltalk code of the REPL and to refactor
the REPL that a single Smalltalk can run several REPLs to work with
stdio and sockets concurrently.

Bye Michael
--
mailto:kraehe@xxxxxxxxxxx UNA:+.? 'CED+2+:::Linux:2.4.29'UNZ+1'
http://www.xml-edifact.org/ CETERUM CENSEO WINDOWS ESSE DELENDAM


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | Mail Home | sitemap | FAQ | advertise