Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!decvax!bellcore!ulysses!gatech!dana From: dana@gatech.CSNET (Dana Eckart) Newsgroups: net.unix-wizards Subject: inter-process communication Message-ID: <2532@gatech.CSNET> Date: Thu, 30-Jan-86 14:49:39 EST Article-I.D.: gatech.2532 Posted: Thu Jan 30 14:49:39 1986 Date-Received: Fri, 31-Jan-86 02:59:08 EST Distribution: na Organization: School of Information and Computer Science, Georgia Tech, Atlanta Lines: 32 Keywords: fcntl, select, pipe, kill, signal I don't know if this has been asked before, but here goes anyway... I am working on a project in which I wish to set up virtual machines (modeled as processes) which communicate over a virtual network (the ipc). I am currently using the parent process to form a bi-directional ring network through the use of "fork" and some pipes. In this way, I can have upwards of 20 machines (processes) in my network (at least under the current configuration of unix on the machine). The problem occurs in the sending of messages through the pipes. How do I let the receiving process know that something is there? I have used "select" with busying waiting, and although this works, it is obviously not very desirable. "fcntl" was tried, until it was realized that unix 4.2bsd doesn't support it for SIGIO (although we are actually using 4.2BRL). It has even come to the point where "kill" messages were sent explicitly, only to realize that signals are not stacked (blocked) but ORed with the current mask. (Since there is a great deal of communication, some sort of signal block seems to be a must in my application.) I realize that sockets were developed to handle this sort of thing, but they are given little support in 4.2 (or at least it seems that way to me). I would prefer to use pipes if possible anyway. Now for the question, does anyone have any experience in doing something similiar to what I have described above? More hopefully, has anyone "hacked" on fcntl enough to get it to work for SIGIO (this of course seems the most preferable solution to my problem)? I am not a unix wiz by any means (I hope I haven't botched the description of the problem either :-)), so any help which could be offered would be greatly appreciated. Thanks in advance... --dana eckart (dana@gatech)