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