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");
|
LOGW(g_worker, "SIGMAPDEL received: Main thread informs us our map is gone\n");
|
||||||
OSMO_ASSERT(sig == SIGMAPDEL);
|
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);
|
worker_set_state(g_worker, BW_ST_CONN_CLIENT_UNMAPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -852,6 +854,9 @@ static void *worker_main(void *arg)
|
||||||
/* push cleanup helper */
|
/* push cleanup helper */
|
||||||
pthread_cleanup_push(&worker_cleanup, g_worker);
|
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
|
/* 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 */
|
* once the client connection is gone or we have some trouble with the card/reader */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
Loading…
Reference in New Issue