bankd: initialize bank_id/slot_nr to 0xffff for unmapped workers
Otherwise the loop for SIGMAPDEL delivery code will match any unused worker for bank_id=0/slot_nr=0, which is not what we want. This also makes repeated RemsimBankd_Tests.TC_removeMapping_connected runs work reliably. Change-Id: I6976eb96feae6a3b66bacf787e436a2df29f9ce0
This commit is contained in:
parent
d9fb93991b
commit
602b6f7763
|
@ -411,6 +411,8 @@ static void handle_sig_mapdel(int sig)
|
|||
{
|
||||
LOGW(g_worker, "SIGMAPDEL received: Main thread informs us our map is gone\n");
|
||||
OSMO_ASSERT(sig == SIGMAPDEL);
|
||||
g_worker->slot.bank_id = 0xffff;
|
||||
g_worker->slot.slot_nr = 0xffff;
|
||||
worker_set_state(g_worker, BW_ST_CONN_CLIENT_UNMAPPED);
|
||||
}
|
||||
|
||||
|
@ -852,6 +854,9 @@ static void *worker_main(void *arg)
|
|||
/* push cleanup helper */
|
||||
pthread_cleanup_push(&worker_cleanup, g_worker);
|
||||
|
||||
g_worker->slot.bank_id = 0xffff;
|
||||
g_worker->slot.slot_nr = 0xffff;
|
||||
|
||||
/* we continuously perform the same loop here, recycling the worker thread
|
||||
* once the client connection is gone or we have some trouble with the card/reader */
|
||||
while (1) {
|
||||
|
|
Loading…
Reference in New Issue