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

Re: 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?
  
Option 3 sounds interesting, but if you look at it, you will still need to
rewrite portions of GEMDOS to support it, so you might as well do the whole
thing right with option 1, eh?