Fix memory leak on error path and proper polling vs async conditions
This commit is contained in:
parent
fd5de0d005
commit
cbc14bc010
2 changed files with 4 additions and 3 deletions
|
@ -450,10 +450,10 @@ MTAB xq_mod[] = {
|
|||
{ MTAB_XTD | MTAB_VDV, 0, "TYPE", "TYPE={DEQNA|DELQA|DELQA-T}",
|
||||
&xq_set_type, &xq_show_type, NULL },
|
||||
#ifdef USE_READER_THREAD
|
||||
{ MTAB_XTD | MTAB_VDV, 0, "POLL", "POLL={DEFAULT|DISABLED|4..2500|DELAY=nnn}",
|
||||
{ MTAB_XTD | MTAB_VDV, 0, "POLL", "POLL={DEFAULT|DISABLED|4..2500|DELAY=nnn}",
|
||||
&xq_set_poll, &xq_show_poll, NULL },
|
||||
#else
|
||||
{ MTAB_XTD | MTAB_VDV, 0, "POLL", "POLL={DEFAULT|DISABLED|4..2500}",
|
||||
{ MTAB_XTD | MTAB_VDV, 0, "POLL", "POLL={DEFAULT|DISABLED|4..2500}",
|
||||
&xq_set_poll, &xq_show_poll, NULL },
|
||||
#endif
|
||||
{ MTAB_XTD | MTAB_VDV | MTAB_NMO, 0, "SANITY", "SANITY={ON|OFF}",
|
||||
|
@ -2584,6 +2584,7 @@ t_stat xq_attach(UNIT* uptr, char* cptr)
|
|||
if (xq->var->poll == 0) {
|
||||
status = eth_set_async(xq->var->etherface, xq->var->coalesce_latency_ticks);
|
||||
if (status != SCPE_OK) {
|
||||
eth_close(xq->var->etherface);
|
||||
free(tptr);
|
||||
free(xq->var->etherface);
|
||||
xq->var->etherface = NULL;
|
||||
|
|
|
@ -87,7 +87,7 @@ extern int32 int_req[IPL_HLVL];
|
|||
|
||||
#define XQ_QUE_MAX 500 /* read queue size in packets */
|
||||
#define XQ_FILTER_MAX 14 /* number of filters allowed */
|
||||
#if defined SIM_ASYNCH_IO
|
||||
#if defined(SIM_ASYNCH_IO) && defined(USE_READER_THREAD)
|
||||
#define XQ_SERVICE_INTERVAL 0 /* polling interval - No Polling with Asynch I/O */
|
||||
#else
|
||||
#define XQ_SERVICE_INTERVAL 100 /* polling interval - X per second */
|
||||
|
|
Loading…
Add table
Reference in a new issue