Issue 419: Ensure correct/portable behavior of upcxx::initialized()
in static destructors
Dan Bonachea
Branch: bonachea/upcxx:issue419
Branch: berkeleylab/upcxx:develop
Merged
Merged pull request
Merge pull request #286 into develop
Status
This PR is only intended to address ONE of the surprising behaviors described in issue 419. This defect had the potential for cascading misbehaviors, especially for static destructors that invoke UPC++ operations whose behavior implicitly depends on library initialization state (notably destructors for collective object types).
The rest of the surprising behaviors described in issue 419 are mostly induced by GASNet-level implementation details, and are OUTSIDE the scope of this PR.
Ready for review.
Commits
add issue419 test
issue 419: tweak backend::init_count around gex_Client_Init()
This fixes surprising behavior (5) listed in issue 419, so that static destructors no longer report
upcxx::initialized() == true
for UPC++ jobs launched using ssh-spawner.