in remsim-bankd it is not entirely trivial to handle the situation, as we simply have N parallel threads all listening on the same socket. Every incoming TCP connection gets dispatched to a random thread, and that thread then processes the requests. The threads have almost no shared state, so thread A doesn't really know what thread B is doing, or whom it is talking to.
Right now they will both try to open the PC/SC reader, and both will succeed (at least that's what happens in my current testing of this situation):
4164906 DBANKDW INFO bankd_main.c:965 [000 ACCEPTING] Accepted connection from 127.0.0.1:10000
4164906 DBANKDW INFO bankd_main.c:452 [000 ACCEPTING] Changing state to CONN_WAIT_ID
4164906 DBANKDW INFO bankd_main.c:665 [000 CONN_WAIT_ID] Rx RSPRO connectClientReq(T=0, N='ttcn-client', SW='TTCN3', VER='0.1')
4164906 DBANKDW INFO bankd_main.c:452 [000 CONN_WAIT_ID] Changing state to CONN_CLIENT
4164906 DBANKDW INFO bankd_main.c:635 [000 CONN_CLIENT] slotmap found: C(23:0) -> B(1:0)
4164906 DBANKDW INFO bankd_main.c:460 [000 CONN_CLIENT] Changing state to CONN_CLIENT_MAPPED (timeout=10)
4164906 DBANKDW INFO bankd_pcsc.c:261 [000 CONN_CLIENT_MAPPED] Attempting to open PC/SC context
4164906 DBANKDW INFO bankd_pcsc.c:264 [000 CONN_CLIENT_MAPPED] SCardEstablishContext: OK
4164906 DBANKDW INFO bankd_pcsc.c:215 [000 CONN_CLIENT_MAPPED] Attempting to find card/slot using regex 'Virtual PCD 00 00'
4164906 DBANKDW INFO bankd_pcsc.c:234 [000 CONN_CLIENT_MAPPED] Attempting to open card/slot 'Virtual PCD 00 00'
4164906 DBANKDW INFO bankd_pcsc.c:198 [000 CONN_CLIENT_MAPPED] SCardStatus: OK
4164906 DBANKDW INFO bankd_pcsc.c:200 [000 CONN_CLIENT_MAPPED] Card ATR: 3b9f96801f878031e073fe211b674a4c753034054ba9
4164906 DBANKDW INFO bankd_main.c:452 [000 CONN_CLIENT_MAPPED] Changing state to CONN_CLIENT_MAPPED_CARD
4164908 DBANKDW INFO bankd_main.c:965 [002 ACCEPTING] Accepted connection from 127.0.0.1:10001
4164908 DBANKDW INFO bankd_main.c:452 [002 ACCEPTING] Changing state to CONN_WAIT_ID
4164908 DBANKDW INFO bankd_main.c:665 [002 CONN_WAIT_ID] Rx RSPRO connectClientReq(T=0, N='ttcn-client', SW='TTCN3', VER='0.1')
4164908 DBANKDW INFO bankd_main.c:452 [002 CONN_WAIT_ID] Changing state to CONN_CLIENT
4164908 DBANKDW INFO bankd_main.c:635 [002 CONN_CLIENT] slotmap found: C(23:0) -> B(1:0)
4164908 DBANKDW INFO bankd_main.c:460 [002 CONN_CLIENT] Changing state to CONN_CLIENT_MAPPED (timeout=10)
4164908 DBANKDW INFO bankd_pcsc.c:261 [002 CONN_CLIENT_MAPPED] Attempting to open PC/SC context
4164908 DBANKDW INFO bankd_pcsc.c:264 [002 CONN_CLIENT_MAPPED] SCardEstablishContext: OK
4164908 DBANKDW INFO bankd_pcsc.c:215 [002 CONN_CLIENT_MAPPED] Attempting to find card/slot using regex 'Virtual PCD 00 00'
4164908 DBANKDW INFO bankd_pcsc.c:234 [002 CONN_CLIENT_MAPPED] Attempting to open card/slot 'Virtual PCD 00 00'
4164908 DBANKDW INFO bankd_pcsc.c:198 [002 CONN_CLIENT_MAPPED] SCardStatus: OK
4164908 DBANKDW INFO bankd_pcsc.c:200 [002 CONN_CLIENT_MAPPED] Card ATR: 3b9f96801f878031e073fe211b674a4c753034054ba9
4164908 DBANKDW INFO bankd_main.c:452 [002 CONN_CLIENT_MAPPED] Changing state to CONN_CLIENT_MAPPED_CARD
I'll continue to investigate.