// endCall is called at the end of a contract call to remove one item the iteratorFrames
endCall is called at the end of a contract call to remove one item the iteratorFrames
// endCall is called at the end of a contract call to remove one item the iteratorFrames
func endCall(callID uint64) {
	remove := removeFrame(callID)
	for _, iter := range remove {
		iter.Close()
	}
}
func endCall ( callID uint64 ) { remove := removeFrame ( callID ) for _ , iter := range remove { iter . Close ( ) } }
endCall is called at the end of a contract call to remove one item the iteratorFrames
endCall is called at the end of a contract call to remove one item the iteratorFrames
// we pull removeFrame in another function so we don't hold the mutex while cleaning up the removed frame // free all iterators in the frame when we release it