home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / de / comp / sys / amiga / misc / 7057 < prev    next >
Encoding:
Internet Message Format  |  1993-01-01  |  1.7 KB

  1. Path: sparky!uunet!math.fu-berlin.de!fub!geminix.in-berlin.de!zikzak!amk
  2. From: amk@zikzak.in-berlin.de (Andreas M. Kirchwitz)
  3. Newsgroups: de.comp.sys.amiga.misc
  4. Subject: UseCount in Resident-List falsch
  5. Message-ID: <O7Wds*TV4@zikzak.in-berlin.de>
  6. Date: Fri, 01 Jan 1993 05:13:06 GMT
  7. Organization: Department of Fun & Games
  8. X-Newsreader: Arn V1.00
  9. Lines: 41
  10.  
  11. Ausnahmsweise mal wieder was Intelligentes:
  12.  
  13. Warum ist der "UseCount" (seg_UC, siehe <dos/dosextens.h>) bei den
  14. Segment-Strukturen in der Resident-Liste stets eins zu hoch?
  15. (z.B. im Vergleich zum internen "Resident"-Kommando)
  16.  
  17. Folgender Source (Ausschnitt):
  18.  
  19. {
  20.     struct Segment *seg;
  21.     Forbid();
  22.     seg = (struct Segment *)BADDR(((struct DosInfo *)
  23.         BADDR(DOSBase->dl_Root->rn_Info))->di_NetHand);
  24.  
  25.     /* seg zeigt nun auf das erste Element der Resident-Liste */
  26.  
  27.     while (seg) {
  28.         /* hier nun jeweils "seg->seg_UC" auslesen */
  29.         seg = (struct Segment *)BADDR(seg->seg_Next);
  30.     }
  31.     Permit();
  32. }
  33.  
  34. Es stellt sich heraus, dass "seg->seg_UC" (falls >= 0) immer eins
  35. zu gross ist.  Die anderen Werte (wenn < 0) stimmen allerdings
  36. (-1, -2 und -999).  Ein UseCount von 0 kommt also nie vor.
  37.  
  38. Mir scheint das alles etwas merkwuerdig zu sein.
  39.  
  40. Bei einem UseCount von stets mindestens "1" duerfte man ja im Prinzip
  41. kein resident gemachtes Programm wieder entfernen duerfen.  Ich muss
  42. ja nicht erwaehnen, dass dies natuerlich trotzdem korrekt funktioniert.
  43.  
  44. Geh ich da vielleicht die falsche Liste durch?  Kann ich kaum glauben.
  45. (wenn Ralph Babel das so sagt, wird's wohl die richtige sein ;-)
  46.  
  47.     WAS MACHE ICH FALSCH ?!?! ...  Andreas
  48.  
  49. --
  50. IRC-Nick: | Andreas M. Kirchwitz, Seesener Str. 69, W-1000 Berlin 31, Germany
  51.   `bonzo' | Phone: +49 (0)30 873376, Mail: amk@{zikzak.in|cs.tu|fu}-berlin.de
  52.