For example, to process several "transfer" requests in parallel. The question is about this implementation of the wallet. I can't figure it out quickly on my own.
1 Answer
The wallet RPC server is not really designed for high traffic, concurrent connections. It only operates on one wallet at a time and runs single threaded. I.e. it assumes only one person is using it at a time, so only one call needs handling each time.
Very near the top of the linked file (line 144), you can see:
//DO NOT START THIS SERVER IN MORE THEN 1 THREADS WITHOUT REFACTORING
return epee::http_server_impl_base<wallet_rpc_server, connection_context>::run(1, true);
Which points out this is running in a single thread.
This of course does not prevent multi-user, multi-wallet setups, it just means you would need to run multiple processes of the monero-wallet-rpc
.