Tiago Jorge wrote on 05/02/05 15:37 this: >>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. >> > > nop. > the problem is that S blocks when doing the call to F with no reason. > But when i removed the call from C1 to S (that is blocked waiting the > IPC response from S), S did the F IPC with no problem... So it is S that > is blocked when doing the ipc_send call to F, not waiting for the > answer, because the request never arrives to the F server. So, the non-blocking szenario is: - no client does send any message to S. - S (magically*) sends a message to F and receives a reply (**)
* how is this request initiated if not by a client? ** let us try to stay with the L4 speech: - an "IPC send" is an IPC from thread T1 to T2 without an immediate reply - an "IPC call" is an IPC from thread T1 to T2 and T1 atomically waits for a reply from T2 (i.e. is blocked until T2 sends the reply). - so, if you remove "the ipc_send call to F" what do you mean in L4 speech? And the blocking szenario is: - C1 calls S. - S calls F, but blocks in the send phase of the call. Did I get it right now? (The respective code snippets or IDL would be helpful.) Greetings, Ron. -- Mit freundlichen Gruessen / with regards ra3 @ inf.tu-dresden.de http://os.inf.tu-dresden.de/~ra3/ _______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
