|
From: | Riccardo Mottola |
Subject: | Re: gworkspace / clang / libobjc2 hang problem |
Date: | Sun, 28 Dec 2014 19:39:03 +0100 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:34.0) Gecko/20100101 Firefox/34.0 SeaMonkey/2.31 |
Hi, Richard Frith-Macdonald wrote:
it does not help, however it looks that the patch makes anyway sense because it is fragile to get a NSRect back from a proxy? (I suppose this is true for all structs then?)Well, I looked at the code and it seemed to be that the call to the -winRect method is being sent to a file operation and, presumably, the file operation is a proxy to an object in another thread/process. That seems to match what David said. I wonder if this is an issue with invocations that we could fix some way? Anyway, I tried changing that method from -(NSRect)winRect to -(void)getWinRect:(NSRect*)rptr./t You could try that out to see if it helps (or revert the change if it doesn't).
Actuall, if I put a NSLog in getWinRect, it does't even get called (and it shouldn't, if there are no outstanding file ops) and yet GWorkspace hangs.
So perhaps I have a more general problem: with current base/gui/libobjc2 I get a hang, but it is not that specific function returning a rect.
I made rectForFileOpWindow return a NSZeroRect directly, to cut out that source of trouble for now, yet I still have the problem.
Can actually someone reproduce this or does it happen only to me? Riccardo
[Prev in Thread] | Current Thread | [Next in Thread] |