You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our use case is clinet->server only. So we have used the basic erpc_client_init().
As far as I can see this interface is not thread safe In terms if send receive synchronization (correct?)
I do see that ArbitratedClientManager() solves this with the pending client list . On the other hand ArbitratedClient seems intended for use with Server\Client sharing a transport and not for the our use case.
To force usage of arbitrated client I guess that would force me to create an DispatchServer and run a server thread soley for this Before I dive into this any furtert, I would like to seek advice:
Is using ArbitratedClient \server without any actual service (possible?) an overkill ?
Thanks
The text was updated successfully, but these errors were encountered:
Hi @taldinj, if i understand corectly you want let several threads call client rpc functions. I see some ideas to improve current solution to match your requests, but can be tricky. Anyway currently you would have to setup arbitrator client and server on one side and server on other side. You don't need add services to server (i think so).
Actually i think you can simplyfy first side with using only arbitrator client (no server) and call arbitratedTransport->receive(MessageBuffer) in loop.
This is interesting and we can make more generic easy use abstraction for your use case and also fill it into documentation.
Hi,
Thank you for your replies. Sorry for my late response I was on an off the grip vacation for a long time.
Just to clerify you last suggestion, " using only arbitrator client (no server) and call arbitratedTransport->receive(MessageBuffer) in loop.", that would still have to be done with a thread that keeps this receive loop alive right?
Basically you are saying I can immitate what DispatchServer does in DispatchServer::runInternalBegin
erpc_status_t err = kErpcStatus_Success;
if (m_messageFactory->createServerBuffer() == true)
{
buff = m_messageFactory->create();
if (NULL == buff.get())
{
err = kErpcStatus_MemoryError;
}
}
/* Receive the next invocation request. */
if (err == kErpcStatus_Success)
{
err = m_transport->receive(&buff);
}
Hi,
Our use case is clinet->server only. So we have used the basic erpc_client_init().
As far as I can see this interface is not thread safe In terms if send receive synchronization (correct?)
I do see that ArbitratedClientManager() solves this with the pending client list . On the other hand ArbitratedClient seems intended for use with Server\Client sharing a transport and not for the our use case.
To force usage of arbitrated client I guess that would force me to create an DispatchServer and run a server thread soley for this Before I dive into this any furtert, I would like to seek advice:
Is using ArbitratedClient \server without any actual service (possible?) an overkill ?
Thanks
The text was updated successfully, but these errors were encountered: