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@tower.com.ar c-3087-2@unrctu.edu.ar ...............................................................................
l4-hackers@os.inf.tu-dresden.de