[Lldb-commits] [PATCH] D117601: [lldb] Make Python initialization atomic

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jan 18 22:58:02 PST 2022

labath added a comment.

I don't think that `atomic<bool>` is what you want here. In the case of a race, the "loser" will immediately continue to use python as if it was initialized, even though the winner has not finished the initialization. You most likely need `call_once` semantics, blocking all threads until the initialization completes.

That said, I think think it would be better to do this initialization in the `Initialize` static function. Out of general cleanliness, but with a particular with a view towards the SIGINT patch. That way the initialization functions happens in a predictable and single-threaded context (as you can see, threads are hard), hopefully at a point where nobody will care that we're mucking with the SIGINT handlers.



More information about the lldb-commits mailing list