One observation so far:
518 + if (has_been_created_once.exchange(true)) 519 + throw std::runtime_error 520 + { 521 + "DeathObserver::create_once_with_signal_trap: " 522 + "Cannot create more than one instance." 523 + }; 524 + 525 + std::unique_ptr<core::posix::ChildProcess::DeathObserver> result 526 + { 527 + new DeathObserverImpl{trap} 528 + };
If line 527 throws (hence the death observer is not created) we can't ever create one as has_been_created_once is already set true (518).
« Back to merge proposal
One observation so far:
518 + if (has_been_ created_ once.exchange( true)) :create_ once_with_ signal_ trap: " ptr<core: :posix: :ChildProcess: :DeathObserver> result pl{trap}
519 + throw std::runtime_error
520 + {
521 + "DeathObserver:
522 + "Cannot create more than one instance."
523 + };
524 +
525 + std::unique_
526 + {
527 + new DeathObserverIm
528 + };
If line 527 throws (hence the death observer is not created) we can't ever create one as has_been_ created_ once is already set true (518).