> SIGABRT is normally synchronous enough: it's sent by abort(). But of
> course, nothing stops the user from kill -ABRT. Or GLib from calling
> abort() in some place where an attempt to reenter it crashes & burns.
> Not sure I'd care, but I'm pretty sure I don't care for freeing stuff on
> exit :)
Yes, SIGABRT is synchronous for all purposes. So the only danger is
that g_string_free() or g_free() could fail while we're in
g_assert(false). But they don't, which makes sense because they are
totally unrelated to g_assert() and therefore can handle re-entrancy.