thywiss@csvax.cs.ukans.edu (John A. Thywissen) (05/17/89)
In article <0539,AA0539@chroma>, Bryan Ford writes
that CloseDevice() should be called from processes only,
because a DELayed EXPunge may cause DOS's UnLoadSeg() to be
called.
This is not quite a valid conclusion because:
1. Libraries/Devices can be expunged by the memory allocater
when RAM gets short, and CERTAINLY AllocMem() is safe from
a task.
2. Actually, UnLoadSeg() isn't called. Exec (or actually ramlib)
frees the SegList itself. If you look carefully, I don't
think you will find any EXPLICIT references to UnLoadSeg in
the docs. [I hope -- I wasn't able to.]
--John
-------
John A. Thywissen <thywiss@csvax.cs.ukans.edu>
1122 West Campus Rd. Rm. 213 /| |\/| | / \ |\
Lawrence, KS 66045-8081 / | | | | | | \
(913) 864 2646 _/_-_-_|_ _|_ _ _|_ _|_ _ _\__|_ _|_-_-_\
carlson@betelgeuse (Richard L. Carlson) (05/17/89)
In article <15593@louie.udel.EDU> thywiss@csvax.cs.ukans.edu (John A. Thywissen) writes: >In article <0539,AA0539@chroma>, Bryan Ford writes >that CloseDevice() should be called from processes only, >because a DELayed EXPunge may cause DOS's UnLoadSeg() to be >called. > >This is not quite a valid conclusion because: > ... > 2. Actually, UnLoadSeg() isn't called. Exec (or actually ramlib) > frees the SegList itself. ... Since I started this discussion, and since other people seem to be interested in the results, I should probably jump back in here. The consensus of Randell Jesup (who posted a followup) and Adam Levin of CATS (who sent me email) [wow, what support from C-A!] is that there should *not* be a problem with doing a CloseDevice() from a task (at least with the current set of devices). I would guess that John's explanation above is the correct reason. -- Richard ...!ucbvax!ernie!carlson carlson@ernie.berkeley.edu
bryan@chroma.UUCP (Bryan Ford) (05/25/89)
In article <15593@louie.udel.EDU>, John A. Thywissen writes: > 2. Actually, UnLoadSeg() isn't called. Exec (or actually ramlib) > frees the SegList itself. If you look carefully, I don't > think you will find any EXPLICIT references to UnLoadSeg in > the docs. [I hope -- I wasn't able to.] I really don't know, you may be right. However, the docs aren't always a valid source of information for obscure things like this. I suppose the only real way to find out would be to ask C-A directly or do a ROM disassembly on the Exec Expunge routine. Bryan -- ______________________________________ _/ Bryan Ford - bryan@chroma.inland.com \_ _/ ..!utah-cs!caeco!i_core!chroma!bryan \_ / ..!uunet!iconsys!caeco!i_core!chroma!bryan \