TMXR: purge any unprocessed EXPECT rules and SEND data on a MUX detach
This commit is contained in:
parent
8077d4de38
commit
d35b19a8ba
1 changed files with 9 additions and 5 deletions
14
sim_tmxr.c
14
sim_tmxr.c
|
@ -4068,20 +4068,24 @@ return SCPE_OK;
|
||||||
t_stat tmxr_detach (TMXR *mp, UNIT *uptr)
|
t_stat tmxr_detach (TMXR *mp, UNIT *uptr)
|
||||||
{
|
{
|
||||||
int32 i;
|
int32 i;
|
||||||
|
char portname[CBUFSIZE];
|
||||||
|
|
||||||
if (!(uptr->flags & UNIT_ATT)) /* attached? */
|
if (!(uptr->flags & UNIT_ATT)) /* attached? */
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
tmxr_close_master (mp); /* close master socket */
|
|
||||||
free (uptr->filename); /* free setup string */
|
|
||||||
uptr->filename = NULL;
|
|
||||||
uptr->tmxr = NULL;
|
|
||||||
mp->last_poll_time = 0;
|
|
||||||
for (i=0; i < mp->lines; i++) {
|
for (i=0; i < mp->lines; i++) {
|
||||||
mp->ldsc[i].uptr->tmxr = NULL;
|
mp->ldsc[i].uptr->tmxr = NULL;
|
||||||
mp->ldsc[i].uptr->dynflags &= ~UNIT_TM_POLL; /* no polling */
|
mp->ldsc[i].uptr->dynflags &= ~UNIT_TM_POLL; /* no polling */
|
||||||
mp->ldsc[i].o_uptr->tmxr = NULL;
|
mp->ldsc[i].o_uptr->tmxr = NULL;
|
||||||
mp->ldsc[i].o_uptr->dynflags &= ~UNIT_TM_POLL; /* no polling */
|
mp->ldsc[i].o_uptr->dynflags &= ~UNIT_TM_POLL; /* no polling */
|
||||||
|
sprintf (portname, "%s:%d", mp->dptr->name, i);
|
||||||
|
expect_cmd (0, portname); /* clear dangling expects */
|
||||||
|
send_cmd (0, portname); /* clear dangling send data */
|
||||||
}
|
}
|
||||||
|
tmxr_close_master (mp); /* close master socket */
|
||||||
|
free (uptr->filename); /* free setup string */
|
||||||
|
uptr->filename = NULL;
|
||||||
|
uptr->tmxr = NULL;
|
||||||
|
mp->last_poll_time = 0;
|
||||||
uptr->flags &= ~(UNIT_ATT); /* not attached */
|
uptr->flags &= ~(UNIT_ATT); /* not attached */
|
||||||
uptr->dynflags &= ~(UNIT_TM_POLL|TMUF_NOASYNCH); /* no polling, not asynch disabled */
|
uptr->dynflags &= ~(UNIT_TM_POLL|TMUF_NOASYNCH); /* no polling, not asynch disabled */
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
|
|
Loading…
Add table
Reference in a new issue