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(a)tower.com.ar>
<c-3087-2(a)unrctu.edu.ar>
...............................................................................