Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!linus!philabs!cmcl2!seismo!brl-tgr!tgr!bzs%bostonu.csnet@CSNET-RELAY.ARPA From: bzs%bostonu.csnet@CSNET-RELAY.ARPA (Barry Shein) Newsgroups: net.unix-wizards Subject: A SYSV MSG question Message-ID: <2597@brl-tgr.ARPA> Date: Wed, 30-Oct-85 09:01:38 EST Article-I.D.: brl-tgr.2597 Posted: Wed Oct 30 09:01:38 1985 Date-Received: Fri, 1-Nov-85 02:04:40 EST Sender: news@brl-tgr.ARPA Lines: 31 Ok, this one has me beat, before I read the sources... I create 3 msgid's with msgget() for three different processes, all seems fine ('ipcs -qo' reveals the three as I would expect them.) Two of these queues are written to (read later, but not yet, by other processes.) One of them has been IPC_SET to be small, but it works fine so I doubt that is the problem (alone.) Now the problem: if the small one blocks on q-full (which I want it to) the other writing process blocks, even if its queue is empty. If I kill the blocked process and ipcrm its queue, the strangely blocked process proceeds as normal (completes its msgsnd() and continues happily, they are all mumbling at my terminal what they are doing.) Note: these three processes do not share these queues, in my mind there should be no interaction. Any ideas? Thanks in advance. (Oh yeah, if I add an IPC_NOWAIT to the strangely blocked process it comes back with <0 and EAGAIN...swell, thanks guys, note that no matter why you returned with the IPC_NOWAIT flag it appears you will get errno == EAGAIN, I think I would have preferred the original errno, or something to distinguish why, sigh.) -Barry Shein, Boston University