I will try to describe the scenario as I understood it: There exist: - The Flips Server (F) - The Server (S) with one server thread - One or more Clients (C1, C2, ...).
Now C1 calls S, which receives the message, decodes it, calls your server function, makes a call to F and blocks, waiting for the reply from F. The C2 tries to call the same server S.
If this is correct, then yes, C2 and all following clients will block, because the server-thread is blocked waiting for F.
To solve this, you would have to build a multithreaded server S.
Greetings, Ron.
Tiago Jorge wrote on 05/02/05 14:52 this:
hello to you all. Let me describe my cenario... I have my L4 server that receives ipc calls. The code was generated from DICE. And i have a lib and i've implemented a client that uses that lib. My L4 server also uses ipc to comunicate with other servers, mainly with flips that also uses IPC. that problem is the following: My client makes an IPC call and blocks waiting for the answer from my server... while processing that answer, my server has to comunicate with flips using IPC. The problem is here... my server blocks in the ipc_send when calling flips, but when i remove the call from the client it works fine, meaning that the client is not blocked waiting for ipc to return. My questions are... why can't i do IPC while another one that has nothing to do with my server is blocked? there can be only one ipc call in the whole system at a time? they all must be sequential?
thanks in advance
Tiago
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers