distributed objects: runloop not serialized?
distributed objects: runloop not serialized?
- Subject: distributed objects: runloop not serialized?
- From: marquis logan <email@hidden>
- Date: Wed, 8 May 2002 04:24:37 -0400
Problem:
I'm having a strange issue where it appears like a thread is trying to
handle a second [oneway] DO message before it's finished handling the
first message.
Overview:
Thread "A" is the main drawing thread, it also listens for asynchronous
DO messages from a server process (mach ports) and it listens for
asynchronous messages from thread "B".
Thread "B" is a background thread which is listening for asynchronous DO
messages from processes on remote hosts (tcp ports) and uses DO to
communicate with thread "A".
All the DO messages are asynchronous, and the only data passed around is
NSDictionary's with plist objects. VM addresses are passed internally.
Every now and then, after Thread "A" has received a message from an
external process running on the same host and while it is updating the
ui with that new data, it will try to handle a message from Thread "B"
(and update a "different" window) and this causes an exception. I was
under the impression that Thread "A" would be unable to handle messages
from Thread "B" while it was tied up doing work for it's own event
source. This happens more frequently when the system is heavily loaded,
but usually only at launch time. It always happens at the same point.
here's a backtrace of Thread "A":
_NSExceptionHandlerExceptionRaiser
-[NSException raise]
+[NSException raise:format:arguments:]
+[NSException raise:format:]
-[NSLayoutManager(NSPrivate)
_fillLayoutHoleAtIndex:desiredNumberOfLines:]
-[NSLayoutManager textContainerForGlyphAtIndex:effectiveRange:]
-[NSLayoutManager glyphRangeForTextContainer:]
-[NSAttributedString(NSStringDrawingExtension) _sizeWithSize:]
-[NSAttributedString(NSStringDrawing) size]
-[AMWindowController updateStats:] (AMWindowController.m:201)
-[AMSession updateStatus:] (AMSession.m:308) // this is a DO message
from Thread "B"
_objc_msgSendv
-[NSInvocation invoke]
-[NSConnection dispatchInvocation:]
-[NSConnection handleRequest:sequence:]
-[NSConnection handlePortCoder:]
-[NSConcretePortCoder dispatch]
-[NSMachPort handlePortMessage:]
___NSFireMachPort
___CFMachPortPerform
___CFRunLoopDoSource1
___CFRunLoopRun
_CFRunLoopRunSpecific
_CFRunLoopRunInMode
-[NSConnection getReplyWithSequence:]
-[NSConnection sendInvocation:target:]
-[NSDistantObject forwardInvocation:]
-[NSObject(NSForwardInvocation) forward::]
__objc_msgForward // the start of the interruption
+[NSRulebook glyphGeneratorForEncoding:language:font:makeSharable:]
+[NSRulebook glyphGeneratorForEncoding:language:font:]
-[NSCGSFont _usesNoRulebook]
+[NSFont findFontLike:forCharacter:inLanguage:]
-[NSMutableAttributedString(NSMutableAttributedStringKitAdditions)
fixFontAttributeInRange:]
-[NSMutableAttributedString(NSMutableAttributedStringKitAdditions)
fixAttributesInRange:]
-[NSTextStorage invalidateAttributesInRange:]
-[NSTextStorage processEditing]
-[NSTextStorage edited:range:changeInLength:]
-[NSConcreteNotifyingMutableAttributedString
edited:range:changeInLength:]
-[NSConcreteMutableAttributedString
replaceCharactersInRange:withAttributedString:]
-[NSStringDrawingTextStorage textContainerForAttributedString:]
-[NSAttributedString(NSStringDrawingExtension) _sizeWithSize:]
-[NSAttributedString(NSStringDrawing) size]
-[AMWindowController updateStats:] (AMWindowController.m:201)
-[AMSession updateStatus:] (AMSession.m:308)
-[AMLocalConnection updateStatus:] (AMLocalConnection.m:184) // DO
message from a separate process
_objc_msgSendv
-[NSInvocation invoke]
-[NSConnection dispatchInvocation:]
-[NSConnection handleRequest:sequence:]
-[NSConnection handlePortCoder:]
-[NSConcretePortCoder dispatch]
-[NSMachPort handlePortMessage:]
___NSFireMachPort
___CFMachPortPerform
___CFRunLoopDoSource1
___CFRunLoopRun
_CFRunLoopRunSpecific
_CFRunLoopRunInMode
-[NSConnection getReplyWithSequence:]
-[NSConnection sendInvocation:target:]
tia
nibs
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.