Am i missing something here ?

kermit the frog kermit at tower.com.ar
Mon Apr 26 03:56:04 CEST 1999


While "testing" some REALLY simple servers that I wrote I noticed
something, maybe this is a bug or maybe Im plain dumb and im missing
something (-;

Heres the thing, whenever I start 2 or more task/threads that contain some
sort of a 'pause' in the for l4_i386_ipc_receive(L4_NIL_ID ... it seems to
be that all tasks/threads block forever, eventhough they have a TIMEOUT of
4 secs, sometimes even less.

Example for 2 tasks:
      Initialization stuff
	.
	.
      for(;;){
      printf(".");

      /* wait 4 sec */
      l4_i386_ipc_receive(L4_NIL_ID, 0, &d1, &d2,
                          L4_IPC_TIMEOUT(0,0,255,8,0,0), &result);
      }

In this example you have 2 tasks which do the same thing, just
printf("something"); . Very simple, but they seem to block.
The same thing happens if you create a new thread with l4_thread_ex_regs,
and you have the same loop (for ... printf ... l4_ipc_recev) in a
function, say my_thread, and send &my_thread as the EIP.

Well, if you happen to remove those 'pauses' all threads/tasks seem to
work just fine (although if youre printing in each of them you cant see
anything (-:

So thats it. Did anyone had this error ??

Cervi~no Ulises
<kermit at tower.com.ar>
<c-3087-2 at unrctu.edu.ar>
...............................................................................







More information about the l4-hackers mailing list