Hi all,

I have fixed the code surrounding select(2) and checked the changes into
cvs. Anyone who is interested please give the code a try. I was using the
tty_select() function for the purposes of testing because I could not think
of another one that would work.

Getting select(2) to work involved a few other changes. The timer code
in kernel/sched.c needed to be fixed as it did not seem to work. The
load_regs() call in schedule() did not return to schedule(), but instead
returned to schedule()s caller, meaning that the code after it which
removed defunct timers did not get called, and stray timers were left
behind every timer select(2) was called but did not timeout.

I came up with a new task switching function tswitch() to replace
save_regs() & load_regs(), which seems simpler and works. It could really do
with some rigourous testing though before the next true release.

Before the next full increment release (0.0.76) I want to get an ALPHA
version of the meta driver, and shared library support working, and will be
working on this for the next few days. I will release 0.0.76pre if there
is demand, providing I can get verification that the new task switching code
is good.

I hope that select() coupled with the new signal code will make ELKS
a lot more functional, and more applications can now be ported.

Al

Reply via email to