[Haskell-cafe] Re: Threads with high CPU usage

Günther Schmidt redcom at fedoms.com
Mon Dec 22 16:12:32 EST 2008


Hi guys,

I just tried to forkIO-off the database code to keep the UI responsive  
using Takusen with Sqlite this time.

The problem persists though, the UI freezes.

AFAIK the sqlite-Takusen code does not use unsafe ccall which would block  
the thread, so that might not be the cause of the problem after all.

Before you guys make the effort to "fix" this you might see if you can  
reproduce the problem maybe uploading a 50 MB file into an Sqlite  
database, for instance, or something else that will keep the database busy  
for some time in a row.

I did not use -threaded and forkOS though.

Günther



Am 22.12.2008, 21:59 Uhr, schrieb John Goerzen <jgoerzen at complete.org>:

> On Mon, Dec 22, 2008 at 04:28:03PM -0000, Bayley, Alistair wrote:
>> > From: haskell-cafe-bounces at haskell.org
>> > [mailto:haskell-cafe-bounces at haskell.org] On Behalf Of Günther Schmidt
>> >
>> > I understand that Takusen does not use "unsafe" calls and
>> > would like to
>> > try it with that one then, but haven't find enough docs yet
>> > on how to use
>> > Takusen.
>>
>> Not a lot of detailed examples exist for Takusen. I'm hoping the  
>> documentation for Database.Enumerator is a reasonable place to start.
>> http://darcs.haskell.org/takusen/doc/html/Database-Enumerator.html
>>
>> I just reviewed the Takusen code and, for no apparent reason, the ODBC  
>> module specifies unsafe for all of its FFI imports, but the other  
>> modules do not (so they get the default, which I assume is safe). I  
>> also was not aware of unsafe calls blocking other threads. I'll change  
>> the ODBC imports to be safe (or rather, unspecified).
>
> Makes sense.  I will make the similar change in all HDBC backends.
>
> -- John
>




More information about the Haskell-Cafe mailing list