freetdm: ftmod_libpri - Do not unlock the channel until all states pending

have been cleared. This should fix issues with
                        state transitions being ignored.
This commit is contained in:
Moises Silva 2010-11-24 12:30:58 -05:00
parent 17efb68d1d
commit a697462a58
1 changed files with 3 additions and 5 deletions

View File

@ -727,15 +727,13 @@ static __inline__ void check_state(ftdm_span_t *span)
for (j = 1; j <= ftdm_span_get_chan_count(span); j++) {
ftdm_channel_t *chan = ftdm_span_get_channel(span, j);
if (ftdm_test_flag(chan, FTDM_CHANNEL_STATE_CHANGE)) {
ftdm_channel_lock(chan);
ftdm_channel_lock(chan);
while (ftdm_test_flag(chan, FTDM_CHANNEL_STATE_CHANGE)) {
ftdm_clear_flag(chan, FTDM_CHANNEL_STATE_CHANGE);
state_advance(chan);
ftdm_channel_complete_state(chan);
ftdm_channel_unlock(chan);
}
ftdm_channel_unlock(chan);
}
}
}