You are correct. They are two different things:
Broken on CFRunLoopWakeUp:
(gdb) po $rdi
<CFRunLoop 0x101e04390 [0x7fff70188ee0]>{locked = false, wakeup port = 0x5c03,
stopped = false,
current mode = (none),
common modes = <CFBasicHash 0x101e043f0 [0x7fff70188ee0]>{type = mutable set,
count = 1,
entries =>
2 : <CFString 0x7fff70166390 [0x7fff70188ee0]>{contents =
"kCFRunLoopDefaultMode"}
}
...
(gdb) po (void*)CFRunLoopGetMain()
<CFRunLoop 0x1019006e0 [0x7fff70188ee0]>{locked = false, wakeup port = 0x1d03,
stopped = false,
current mode = kCFRunLoopDefaultMode,
common modes = <CFBasicHash 0x101900490 [0x7fff70188ee0]>{type = mutable set,
count = 3,
entries =>
0 : <CFString 0x7fff70f7c0f8 [0x7fff70188ee0]>{contents =
"NSModalPanelRunLoopMode"}
1 : <CFString 0x7fff70f7c118 [0x7fff70188ee0]>{contents =
"NSEventTrackingRunLoopMode"}
2 : <CFString 0x7fff70166390 [0x7fff70188ee0]>{contents =
"kCFRunLoopDefaultMode"}
}
...
Thanks for offering to look into this further.
Gideon
On 08/12/2010, at 8:16 PM, Dave Keck wrote:
>> That was the output for $rdi at the CGRunLoopWakeUp breakpoint immediately
>> after the call to performSelectorOnMainThread...
>
> Sorry, realized that after I sent. The output still isn't what I would
> expect though: on my system, the run loop supplied to
> CFRunLoopWakeUp() from within the -performSelectorOnMainThread stack
> frame is the main run loop (as you'd expect), and the description of
> the main run loop should be quite similar to what I posted at the
> pastie link. The description of the run loop you posted (with address
> 0x1a2ac80) doesn't look like the main run loop at all. Therefore I'm
> _guessing_ that the problem is that -performSelectorOnMainThread is
> both attaching its CFRunLoopSource and calling CFRunLoopWakeUp() on
> the wrong run loop.
>
> It'd be worth verifying whether the CFRunLoopRef supplied to
> CFRunLoopWakeUp() within the -performSelectorOnMainThread stack frame
> is the same pointer returned by CFRunLoopGetMain(). Let me know and if
> it's not, and I'll look further into the NSObject/NSThread disassembly
> to see where it might be getting the incorrect CFRunLoop reference.
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]