Ronald Aigner wrote: >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. >> >> I like your description :)
>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? > > > The imaginary test cenario was the following... i've removed the client and i've emulated internally the call so i could test if the problem was from the comunication S<->F... so the only ipc here its between S and F :). I've never removed the call from F. Only from C1. I must always have network. >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.) > > > yep... thats the problem. if i use the emulated szenario explained above, the ipc between S<->F works... if i put the client the S<->F does not work...:( my doubt remains... why can't i do the second IPC? because i've debugged the client stubs and the server-side stubs and i've realized that S blocks in the ipc_send, the call never arrives on the server... Tiago _______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
