Version française
Home     About     Download     Resources     Contact us    
Browse thread
Native multithreaded LablGTK2?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Kaspar Rohrer <krohrer@s...>
Subject: Re: [Caml-list] Native multithreaded LablGTK2?

On 30.07.2007, at 07:40, Julien Moutinho wrote:
> Check the META.lablgtk2 file:
> $ ocamlfind query lablgtk2 -format "%A" -predicates native,mt
> lablgtk.cmxa gtkThread.cmx
>
> If you get this, lablgtk2 is not likely to be guilty.
Here's what I get, so I suppose lablgtk2 is not guilty:

 > ocamlfind query lablgtk2 -format "%A" -predicates native,mt
lablgtk.cmxa lablglade.cmxa lablgnomecanvas.cmxa lablgnomeui.cmxa  
lablpanel.cmxa gtkInit.cmx gtkThread.cmx

>
> For I have never used neither Omake nor Godi, cannot help more.
> Nonetheless, if I were you I would dive into Omake...
Hm, maybe the error is in how I use Omake. I'll look into.

>> PS: Currently the application is single threaded, but due to output
>> redirection using pipes, I get the occassional freeze. (Pipe gets  
>> flooded!)
> Weird.
No, not at all. The redirection happens in the same thread, so if the  
pipe buffer is full, all write operations will block. And because the  
application is single threaded, the reader never gets a chance to  
empty the pipe. Thus, freeze.

I'm piping stdout, because that's the only way I was able to redirect  
stdout to a gtk text widget (using a GIOchannel: GMain.Io.*). If  
anybody has a better idea, I'd be glad to hear it. I was originally  
thinking of  an out_channel that writes to a buffer instead of a  
file, but the Ocaml standard library seems to be missing this  
functionality. Or is it?

Anyway, thanks a lot for your help. I appreciate it.