Successful rtems_region_get_segment() returning NULL pointer ?

Rolf Schroedter Rolf.Schroedter at dlr.de
Mon Sep 20 05:56:28 UTC 2004


Just for information:
The workaround solution (RTEMS_NO_WAIT,RTEMS_NO_TIMEOUT + sleep)
seems to work for RTEMS 4.6.0pre4.
For RTEMS 4.6.1 the same problem has been observed after ~1 hour,
while (RTEMS_WAIT,RTEMS_NO_TIMEOUT) and (RTEMS_WAIT,10) fail rather quickly.



Rolf Schroedter wrote:
> Found a workaround for the described problem:
> With the following construct my application runs for several hours:
> 
>  > for(;;) {
>  >     stat=rtems_region_get_segment(idRegion,size, \
>  >                  RTEMS_NO_WAIT,RTEMS_NO_TIMEOUT,&ptr);
>  >     if (stat == RTEMS_SUCCESSFUL) break;
>  >     rtems_task_wake_after(10);
>  > }
> 
> The following two constructs are occasionally stopping the task calling
> rtems_region_return_segment() when the region is full.
>  >     stat=rtems_region_get_segment(idRegion,size, \
>  >                    RTEMS_WAIT,RTEMS_NO_TIMEOUT,&ptr);
> or
>  > for(;;) {
>  >     stat=rtems_region_get_segment(idRegion,size,RTEMS_WAIT,10,&ptr);
>  >     if (stat == RTEMS_SUCCESSFUL) break;
>  > }
> 
> Really strange ...
> 
> Regards,
> Rolf.


-- 

------------------------------------
Rolf Schroedter
German Aerospace Center
Institute of Planetary Research
D-12489 Berlin, Rutherfordstrasse 2
Tel/Fax:  (+49) (30) 67055-416/384
Email:    Rolf.Schroedter at dlr.de



More information about the users mailing list