On Tue, Sep 27, 2011 at 10:09 AM, Philippe Gerum <r...@xenomai.org> wrote:
> On Mon, 2011-09-26 at 23:28 +0200, Ronny Meeus wrote:
>> Hello
>>
>> As for as I know it is not mandatory call tm_cancel on a one-shot
>> timer to cleanup the resources in the OS.
>> This means that if the timer expires, the event is sent and all
>> resources are released by pSOS at that time.
>>
>> Since I did not see a test for this in the testsuite, I created one
>> myself (in fact 2, see attachments).
>> This time it is a small piece of code :-).
>> In this test I create a task that starts 100 events timers
>> (tm_evafter) but does not stop them (no tm_cancel is called).
>>
>> In the first test (tm-10.c) I create a task that starts 100 timers,
>> sleeps some time and deletes itself.
>> This sleeping allows the timers to expire. This is the result if I run 
>> valgrind:
>>
>
> [snip]
>
>> So it looks like the contexts allocated in start_evtimer are at least
>> lost, but valgrind mentions another 100 blocks that are still
>> reachable but I think these are in fact also lost since these are
>> referenced by the timer contexs.
>>
>
> [snip]
>
> Ack, it would not make sense to leave elapsed oneshot timers alive. The
> code is now fixed.
>
>
>>
>> I also have created a similar test application (tm-11), but in this
>> code the sleep is not there. This means the timers are still running
>> while killing the task. When running this test, I see an invalid read:
>>
>
> Confirmed. Albeit the deletion code was there, it was badly broken. At
> this chance, the "invalid timer" error code returned by all timer
> routines has been fixed as well.
>
> I merged a slightly adapted version of these tests as tm-6 and tm-7 in
> the psos testsuite. Thanks.
>
> --
> Philippe.
>
>
>

I tried the latest version of the repo and the problem is resolved.
Thanks for the quick response.

Ronny

_______________________________________________
Xenomai-help mailing list
Xenomai-help@gna.org
https://mail.gna.org/listinfo/xenomai-help

Reply via email to