First, a quick question: did I fluff my cvs update, or has none of
the gc stuff made it in yet?

        About interupt eight: the reason Bad Things happened to the i386
build is that the clock interrupt fires before everything (i.e. the
static variables interrupts.intXXX) is ready.  Testing with all the tests
off (except the console drivers, which need work, btw) and w/o the
function trace reveals that the java_word slurped up from
interrupts.int008, the one that's supposed to be an interrupt object, is
in fact a null object, so that when the threadable object is cast out of
it, Bad Things happen.

        At any rate, on my Celery 400, this happens three times before the
initialization goes through, and everything seems to work fine.  The
current check & abort correction I've got set up [ if ( jw.isNull() ) {
kprintf(...); return; } ]* is rather kludgy.  I'd imagine that we could
forcibly initialize the interrupts class before start()ing the scheduler,
but I'm not sure what this would do to the system or the classes required
by the clock driver.  What might work best is to offer a
jos.system.machine method switching off/on native clock handling, so that
init() could handle what was necessary to ensure the clock-handler was
ready before it was allowed to run.

        I haven't committed the changed scheduler.cc in light of my
uncertainty about the correctness of my tree at this point; I've just
moved into a new Slackware 4.0 system and I'm still being very careful
about things.

        I'll be trying the new vga driver later tonight and doing a bit of
fiddling with the console driver(s).

-_Quinn

* right after "ft->getOffsetWord(...);" in scheduler.cc in the function
  "notifyOfInterrupts()"


_______________________________________________
Kernel maillist  -  [EMAIL PROTECTED]
http://jos.org/mailman/listinfo/kernel

Reply via email to