public void CollectGarbage() { const int cap = 256; int[] result = new int[cap]; // 256 per cycle int n; do { n = c_collectgarbage(L, cap, result); for (int i = 0; i < n; i++) { objects.Remove(result[i]); } } while(n < cap && n > 0); }