Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!ucla-cs!zen!ucbvax!hplabs!pyramid!oliveb!felix!martin From: martin@felix.UUCP (Martin McKendry) Newsgroups: comp.dcom.lans,comp.protocols.tcp-ip Subject: Re: Streams TCP/IP Message-ID: <4609@felix.UUCP> Date: Thu, 6-Aug-87 19:40:19 EDT Article-I.D.: felix.4609 Posted: Thu Aug 6 19:40:19 1987 Date-Received: Sun, 9-Aug-87 06:21:44 EDT References: <725@hjuxa.UUCP> <649@houxa.UUCP> <278@unixprt.UUCP> <561@applix.UUCP> <965@geac.UUCP> <24336@sun.uucp> Sender: daemon@felix.UUCP Reply-To: martin@felix.UUCP (Martin McKendry) Organization: FileNet Corp., Costa Mesa, CA Lines: 31 Xref: mnetor comp.dcom.lans:718 comp.protocols.tcp-ip:850 In article <24336@sun.uucp> guy%gorodish@Sun.COM (Guy Harris) writes: > >Since streams modules and drivers do not necessarily run in the >context of a process, even when servicing a request made in a process >(e.g., a "write" or an "ioctl"), they cannot block; thus, if a memory >allocation fails, you have to go through some amount of contortions >to retry the allocation if it's important to do so. Were STREAMS to >be implemented on top of a kernel that supported "lightweight >processes", one could guarantee that streams modules and drivers ran >in the context of a thread of control that could safely block, which >would considerably simplify this. We are considering using streams as a basis for some future work on our distributed file system, as well as for networking. The problem Guy cites above, inability to block on resources, seems to be a MAJOR one. The code I have seen seems to do mutual exclusion via spl, which is pretty crude but works. I guess we could do that, but often we need to block to read from disk, or to get long-held resources, such as inodes. So what work-arounds exist? I cannot believe that real software has been implemented with streams without this problem coming up. Any experience or suggestions? Or are the applications implemented so far sufficiently simple that this is not a problem? In which case, Streams are maybe half of a message handling mechanism, which is probably worse than none at all. Sadly. -- Martin S. McKendry FileNet Corp {hplabs,trwrb}!felix!martin