[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GEMDOS re-entrancy



========================================================================
- HD driver initiates transfer, puts process A to sleep. Note that
  process A is now sleeping *inside* GEMDOS.

- Process B makes a GEMDOS call.
========================================================================

It would seem there are 3 choices.

1) GEMDOS must be re-entrant.  It isn't.

2) Process B must not make a GEMDOS call.  This could lead to some weird
   multitasking.  I guess it would work, but halting the AES when a program
   tries to load fonts could get kinda hairy.  Processes that can't call
   GEMDOS cannot accept input or display output.  This will work, but it's
   hairy.

3) Make process A sleep OUTSIDE GEMDOS.  There must be some way to clean up
   GEMDOS while process A sleeps, perhaps exiting GEMDOS and putting the
   process on some sort of wait queue.  Then have the process re-enter
   GEMDOS when the IO is complete.  There has GOT to be some way to clean
   things up.

I'd rather make GEMDOS re-entrant, but failing that perhaps option 3 could
be implemented?