[Geany] Mac OSx Snow Leopard experience, 100% CPU load whenever build has been started !

Andrei Vishneuski vish at xxxxx
Thu May 20 16:49:15 UTC 2010


On 20 mei 2010, at 12:48, Lex Trotman wrote:

> 
> 
> On 20 May 2010 20:20, Andrei Vishneuski <vish at gravitysoft.org> wrote:
> 
> On 20 mei 2010, at 11:42, Lex Trotman wrote:
> 
>> 
>> 
>> On 20 May 2010 19:28, Andrei Vishneuski <vish at gravitysoft.org> wrote:
>> 
>> On 19 mei 2010, at 22:34, Enrico Tröger wrote:
>> 
>> > On Tue, 18 May 2010 21:40:03 +0200, Andrei wrote:
>> >
>> >> On 05/18/2010 01:31 PM, Andrei Vishneuski wrote:
>> >>>
>> >>>
>> >>> On 18 mei 2010, at 13:22, Lex Trotman wrote:
>> >>>
>> >>>>
>> >>>>
>> >>>> On 18 May 2010 20:37, Andrei Vishneuski <vish at gravitysoft.org
>> >>>> <mailto:vish at gravitysoft.org>> wrote:
>> >>>>
>> >>>>    I am big fun of Geany and have used it in Windows and Linux as
>> >>>> my primary development editor.
>> >>>>    The problem is usage of Geany under Mac OSx.
>> >>>>    Basically under Mac osx you have three options:
>> >>>>
>> >>>>    1) Install port and install geany through the port. This is the
>> >>>>    most simple way. Geany looks a little bit ugly but workable
>> >>>> and fast. 2) Deploy native Mac OSx GTK (see gtk-osx). More
>> >>>> complicated way to use Geany. Geany looks more integrated with Mac
>> >>>> OSx, but it is SLOW !
>> >>>>    3) Use virtual (Linux) machine. Not a graceful way but better
>> >>>>    than nothing.
>> >>>>
>> >>>>    I have tried all three options. And unfortunately only third
>> >>>>    option is applicable.
>> >>>>
>> >>>>    Options 1) and  2) has critical bug. If you try to build
>> >>>>    something geany starts consuming 100% CPU time !
>> >>>>    It seems there is something wrong with process output reading,
>> >>>>    geany cannot correctly finalize it and stuck somewhere in
>> >>>> reading loop.
>> >>>>
>> >>>>    Does anybody have the same experience and may be just by chance
>> >>>>    has found a workaround ?
>> >>>>
>> >>>>
>> >>>>
>> >>>> Which versions of Geany and Glib and GTK?
>> >>>>
>> >>> Geany 0.18.1
>> >>> 1) Mac OSx port GTK2 2.18.2
>> >>> 2) native gtk-osx GTK2 don't know exact version they are supporting
>> >>> (have to see my home PC to give you more information)
>> >>
>> >> I little bit more about gtk-osx version: geany 0.18.1 (built on May
>> >> 18 2010 with GTK 2.18.2, GLib 2.22.2)
>> >> Geany and gtk-osx has been compiled as i386 applications since 64bits
>> >> version of gtk-osx is no stable yet.
>> >>
>> >> PS: frankly speaking I think it is not GTK related bug, since I have
>> >
>> > It doesn't need to be a GTK/GLib bug but maybe we just use it wrong or
>> > it behaves differently on MacOSX or MacOSX behaves differently than
>> > Linux/Unix. I can't say what's wrong and I don't have access to a
>> > MacOSX system :(.
>> 
>> 
>> Could you give me a brief use case how the build feature works (several general steps) and point the file
>> where I can find code responsible for it. May be I will try to take a look at the
>> problem closer (cannot guarantee since I have not used C/C++ for ages :)). As far as I can see practically everything works:
>> it executes appropriate tool for compilation, gets output from the tool,  parses output and makes parsed results visible in compile
>> window. But after that geany CPU load is 100%.
>> 
>> Oh, the load remains 100% forever after???  Do you get a success message in the status bar?
>> 
>> Can you try the nightly build version but configure the "build" to run a shell script that just does a delay so you can check if the load starts before the end of the build or after completion.
>> 
>>  
>> 
>> I have tried geany night build and geany 0.17. They have the same problem.
>> 
>> 
>> Ok, thanks, 0.17 lets out new build bits I added :-) but we've still got to fix the problem :-( 
>> 
>> 
>> PS: Buy the way, several days ago VirtualBox 3.2 has been released. One of the very interested
>> feature is support for Mac OSx. That means it is possible to install original Mac OSx from
>> original oficial DVD. It could be a good way to test geany for this platform.
>> 
>> If one has a DVD, doesn't a Mac come from a place with golden arches?? Thats how much I know about them I'm afraid.
> 
> The problem with Mac OSx is mac hardware uses more modern PC (EFI instead of BIOS) architecture and of course it is impossible
> just to take official Mac OSx DVD and install it on any PC even if the hardware has identical CPU/GPU/etc. And reverse: it is 
> impossible to install Linux/Windows on mac hardware as is, without special boot loaders that emulates BIOS existence. 
> 
> There are several  unofficial projects that modify (hack) original DVD (most of them add special boot loader which makes Mac OSx feels like 
> it starts on PC with EFI).  What Virtual Box does it has started supporting the modern PC architecture and as result you can take original  Mac OSx 
> (as far as I know it possible to buy Snow Leopard legally in apple store) and install it as virtual machine. Of course, there are still several
> problems, your hardware  (CPU/GPU/etc) should be compatible with what Mac OSx can support. 
>   
> 
> 
> AFAIK none of the Geany developers uses Macs so there is no reason for anyone to spend money do it.  
> 
> But if you can help we are happy to provide all the guidance we can if you can contribute by looking at the problem.  
> 
> If you get a chance to look at when the 100% starts would be good.
> 
> As I said in a post a couple back to Enrico (I see I didn't clearly indicate I was talking to him, oops sorry) if the problem can't be definitely found, another option is to try the way builds are run on Windows, where they are synchronous and different methods are used to interface to the subprocess.  So all is not lost yet.
> 
> To answer your question about where to look, all is in build.c, you will see that there are #ifdefs that separate the windows and unix code, look at the section headed "execute commands and handle results" and the whole process starts at build_spawn_command().  If you can use a debugger to find what loop its stuck in maybe we can narrow it down.  I would assume its in the GTK event/monitor loop,  otherwise the application wouldn't continue to work, possibly the monitor of the subprocess pipe isn't terminating right and GTK keeps calling it with no characters??
> 
> Cheers
> Lex


The only thing I can say right now is "build_iofunc()" executed infinitely, the function always returns TRUE (that is the reason why it is never terminated, I think).
Will see why ii is always true ...


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geany.org/pipermail/users/attachments/20100520/170dcbd3/attachment.html>


More information about the Users mailing list