The shared pointer is so that a 2nd verifier won't miss any log between what the last verifier has looked at and where the 2nd verifier started.
See the log below:
"[ModuleManager] Unload" was logged.
Soon after, "[BossAttacks] Updating option display" was logged.
Log verifier #-6 then woke up and saw the 1st log.
Log verifier #-8 then is created to look for the 2nd log. However, the 2nd log has already been emitted before #-6 woke up. When #-8 is created, it looks for tail of the log list, is beyond the 2nd log. So #-8 wasn't able to see that log and failed the test.
The shared pointer is so that a 2nd verifier won't miss any log between what the last verifier has looked at and where the 2nd verifier started.
See the log below:
Repro: 5695017f22691d7f55229dcbcd843cfa117391d7