SIS in "real time"

Heinz Junkes junkes at fhi-berlin.mpg.de
Fri Apr 9 17:45:31 UTC 2021


Jiri, Joel, thanks for your answers.

@Joel: I was wondering that rtems-examples in psx_example_3 does not wait 3 seconds.

I made a curious observation:

in the original code:

   clock_gettime( CLOCK_REALTIME, &timeout );
   timeout.tv_sec += 3;
   timeout.tv_nsec = 0;
   printf("The task is coming to enter in a timed wait\n");
   pthread_cond_timedwait(&cond, &mutex, &timeout);


I then inserted some printfs and found that the "3" is added to the nsec’s.

Then I added the rtems-timespec-helpers routines, but get the same behavior:


void * print_hello(void * arg)
{
  struct timespec now, timeout;
  rtems_timespec_set(&timeout, 3, 0);

  printf("<child>: Hello World! task with max priority \n");
  clock_gettime( CLOCK_REALTIME, &now );
printf("now tv_sec = %d, tv_nsec = %d\n", now.tv_sec, now.tv_nsec);
  rtems_timespec_add_to(&timeout, &now);
printf("timeout tv_sec = %d, tv_nsec = %d\n", timeout.tv_sec, timeout.tv_nsec);
  printf("The task is coming to enter in a timed wait\n");
  pthread_cond_timedwait(&cond, &mutex, &timeout);
  printf("The task is coming out from the timed wait \n");
  return NULL;
}

program output:

<main> Enter in the main
Creating first task
<child>: Hello World! task with max priority
now tv_sec = 4766459, tv_nsec = 567993600
timeout tv_sec = 4766459, tv_nsec = 567993603
The task is coming to enter in a timed wait
The task is coming out from the timed wait
First Task created
Creating second task
 <child>: Hello World! Task with lowest priority Second task created
<main> Out of the main

If I now swap the arguments in the set-function , i.e. instead of
 rtems_timespec_set(&timeout, 3, 0);

 rtems_timespec_set(&timeout, 0, 3);

it looks as it should

<child>: Hello World! task with max priority
now tv_sec = 10766729, tv_nsec = 567993600
timeout tv_sec = 10766732, tv_nsec = 567993600
The task is coming to enter in a timed wait
The task is coming out from the timed wait
First Task created
Creating second task
 <child>: Hello World! Task with lowest priority Second task created
<main> Out of the main

But still no timed wait  recognizable :-(

Heinz



-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2542 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20210409/96fe23e3/attachment.bin>


More information about the users mailing list