[Haskell-cafe] Why don't my OS threads terminate?

Simon Marlow marlowsd at gmail.com
Thu Mar 10 23:14:00 CET 2011


On 10/03/11 18:20, Bas van Dijk wrote:
> On 10 March 2011 18:11, Simon Marlow<marlowsd at gmail.com>  wrote:
>> On 28/02/11 15:59, Bas van Dijk wrote:
>>>
>>> On 25 February 2011 19:10, Bas van Dijk<v.dijk.bas at gmail.com>    wrote:
>>>>
>>>> On 25 February 2011 18:27, sclv<s.clover at gmail.com>    wrote:
>>>>>
>>>>>
>>>>> Bas van Dijk-2 wrote:
>>>>>>
>>>>>> I believe the OS threads are created by my levmar library. This
>>>>>> library uses bindings-levmar[4] which is a binding to a C library.
>>>>>> bindings-levmar uses safe FFI calls because the levmar C procedures
>>>>>> are reentrant (they need to call back into Haskell to execute the
>>>>>> model function). I believe the RTS creates an OS thread for each safe
>>>>>> FFI call.
>>>>>>
>>>>>
>>>>> Sounds like #4262: http://hackage.haskell.org/trac/ghc/ticket/4262
>>>>>
>>>>> (Should be fixed in head)
>>>>
>>>> That looks exactly like my problem. I will try it out with ghc head on
>>>> monday.
>>>
>>> In ghc-HEAD (7.1.20110227) the bug is fixed, great!
>>>
>>> The bug still appears in ghc-7.0.2-rc2, so I assume the patch in #4262
>>> was not merged in that release.
>>>
>>> Will it be merged into the upcoming ghc-7.0.2?
>>
>> I'm slightly worried by this.  #4262 was not an OS thread "leak", but rather
>> that when the program needs fewer OS threads we weren't returning the
>> surplus OS threads back to the system.  #4262 doesn't make programs use an
>> ever-increasing number of OS threads.  It's an optimisation rather than a
>> bug, which is why we didn't merge the patch into the 7.0 branch.
>>
>> So I'm concerned because the symptom you describe sounds more like a leak.
>> #4850 could have caused it, but the fix for that was merged into 7.0.2.
>
> My bug is solved in 7.0.2.

Ah great, thanks for testing.

Cheers,
	Simon




More information about the Haskell-Cafe mailing list