Вторник, 13 августа 2013, 13:27 +01:00 от David Matthews 
<[email protected]>:
>On 08/08/2013 07:07, Dmitry Popoinikov wrote:
>>
>>
>>
>> Вторник,  6 августа 2013, 13:55 +01:00 от David Matthews < 
>> [email protected] >:
>>> On 04/08/2013 22:31, Dmitry Popoinikov wrote:
>>>
>>> Hi Dmitry,
>>> I can't see there would be any problem with running a Poly/ML program
>>> for a long time.  Provided your application only requires a constant
>>> data size there's no reason why the heap should grow beyond a steady
>>> state.  There will be periodic garbage collections of course.
>>>
>>> I've now added code to the SVN version so that a thread created within
>>> foreign code can call an ML callback.  I've done some simple tests of it
>>> but you may want to test it more exhaustively.
>>>
>>> Regards,
>>> David
>>>
>>
>> Hi David,
>> My program works well now. Thank you very much!
>>
>
>Hi Dmitry,
>I discovered a problem with the code that I added and I have had to 
>remove some of it.  In the callback code there is a check to see if the 
>thread has ever been in ML code before and if not Poly creates some data 
>structures for it which includes an ML stack.  The difficulty is in 
>knowing when to remove this data.  Threads created by Poly always call 
>an "exit" function and that removes the data for those threads but it's 
>not possible to use that for threads created by foreign code.  I added 
>some code to the "main" thread to try to detect when a thread has exited 
>but that caused crashes.  It seems that, unlike with Windows, there is 
>no safe way to discover when a thread created with pthreads has exited. 
>  The simplest possibility would be to remove the data and the ML stack 
>as soon as the callback returns, if that callback created the data.  If 
>your thread is making many calls to the callback that could be 
>expensive.  Would that be a problem for your code?
>
>Regards,
>David
Hi David,
I've tested my program with r1833. It seems everything is good.

-- 
Best Regards,
Dmitry
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to