Deinitが呼ばれる瞬間のコールスタック

image

参照型オブジェクトのdeinitが呼び出されるタイミングをより詳しく知るために、Deinitを監視する

UntilDeinitCancellableはclass それをSetで包んでいる。 そのUntilDeinitcancellableがdeinitされるのはいつなのか. 新しいSetを代入するタイミングで保持されていたオブジェクトが破棄されるようにスタックが積み上がっている。

まずはSetのStorageのdeinit (SetはCopy on write対応なので、内部は参照方のバッファを保持しているためdeinitが走る。)

さらにそのStorageに保持されているUntilDeinitCancellableのdeinitも実行されている。