Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!apple!agate!shelby!portia!dchapman From: dchapman@portia.Stanford.EDU (David Chapman) Newsgroups: comp.object Subject: Re: "Messaging" (Re: Reentrant code) Message-ID: <5678@portia.Stanford.EDU> Date: 8 Oct 89 22:54:21 GMT References: <4540@internal.Apple.COM> <8636@goofy.megatest.UUCP> Sender: David Chapman Reply-To: dchapman@Portia.Stanford.EDU (David Chapman) Organization: Stanford University Lines: 18 In article <8636@goofy.megatest.UUCP> djones@megatest.UUCP (Dave Jones) writes: >I find few applications for messaging which can not be handled in >some more direct way. The only system I can recall building which >used messaging in a fundamental way could not have been implemented >directly using most message-based languages, because the messages were >sent between processes on different machines. Come to think of it, it >was really a substitute for static binding of interprocess function >calls, a concept which I have never seen implemented. Interprocess function calls imply blocking (you get a return value from the callee). Message passing implies no blocking (except perhaps for queue overflow). The return value is from the message passing system itself and tells you if the message was accepted (i.e. transmitted properly and acknowledged). This is a fundamental difference, and is an OS problem instead of an OOP problem (since most OOPs are not parallel programming languages). If your function calls don't block they are messages, by the way.