Use locks on check_events for threaded case

This commit is contained in:
Stephen Seo 2019-03-04 11:40:34 +09:00
parent 3b4ae6e7dd
commit 0f1e9c9aed

View file

@ -225,7 +225,11 @@ void UDPC_set_callback_received(
void UDPC_check_events(UDPC_Context *ctx)
{
// TODO use a lock on receivedPackets
if((ctx->flags & 0x1) != 0)
{
mtx_lock(&ctx->tCVMtx);
}
if(ctx->callbackConnected)
{
for(int x = 0; x * 4 < ctx->connectedEvents->size; ++x)
@ -278,6 +282,11 @@ void UDPC_check_events(UDPC_Context *ctx)
}
UDPC_Deque_clear(ctx->receivedPackets);
}
if((ctx->flags & 0x1) != 0)
{
mtx_unlock(&ctx->tCVMtx);
}
}
int UDPC_queue_send(UDPC_Context *ctx, uint32_t addr, uint32_t isChecked, void *data, uint32_t size)