| 1647 | } |
| 1648 | |
| 1649 | void SigSession::remove_decoder(int index) |
| 1650 | { |
| 1651 | int size = (int)_decode_traces.size(); |
| 1652 | assert(index < size); |
| 1653 | |
| 1654 | auto it = _decode_traces.begin() + index; |
| 1655 | auto trace = (*it); |
| 1656 | _decode_traces.erase(it); |
| 1657 | |
| 1658 | bool isRunning = trace->decoder()->IsRunning(); |
| 1659 | |
| 1660 | remove_decode_task(trace); |
| 1661 | |
| 1662 | if (isRunning) |
| 1663 | { |
| 1664 | // destroy it in thread |
| 1665 | trace->_delete_flag = true; |
| 1666 | } |
| 1667 | else |
| 1668 | { |
| 1669 | delete trace; |
| 1670 | signals_changed(); |
| 1671 | } |
| 1672 | } |
| 1673 | |
| 1674 | void SigSession::remove_decoder_by_key_handel(void *handel) |
| 1675 | { |