{"action":"opened","issue":{"url":"https://api.github.com/repos/pinepain/php-weak/issues/2","labels_url":"https://api.github.com/repos/pinepain/php-weak/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/pinepain/php-weak/issues/2/comments","events_url":"https://api.github.com/repos/pinepain/php-weak/issues/2/events","html_url":"https://github.com/pinepain/php-weak/issues/2","id":126246002,"number":2,"title":"Uncaught-exceptions can prevent notification callbacks","user":{"login":"DHager","id":505957,"avatar_url":"https://avatars.githubusercontent.com/u/505957?v=3","gravatar_id":"","url":"https://api.github.com/users/DHager","html_url":"https://github.com/DHager","followers_url":"https://api.github.com/users/DHager/followers","following_url":"https://api.github.com/users/DHager/following{/other_user}","gists_url":"https://api.github.com/users/DHager/gists{/gist_id}","starred_url":"https://api.github.com/users/DHager/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DHager/subscriptions","organizations_url":"https://api.github.com/users/DHager/orgs","repos_url":"https://api.github.com/users/DHager/repos","events_url":"https://api.github.com/users/DHager/events{/privacy}","received_events_url":"https://api.github.com/users/DHager/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-12T18:43:14Z","updated_at":"2016-01-12T18:43:14Z","closed_at":null,"body":"Creating this issue to track an ongoing concern, extracting this description from the README:\r\n\r\n> ### Notify callback will not be called if any uncatch exception thrown during object destructing process before it.\r\n\r\n> If any exception in referent object destructor or other weak references notifier callback (if any) during object destructing process thrown, next notify callback will not be called.\r\n\r\n> Internally, Weak\\Reference's notify callback may be considered as a destructor extension, something like extending object destructor and call notify callbacks one by one in a row, if any.\r\n\r\n> Anyway, we assume that exception in destructors are fatal and the only way they should be handled is fail-fast approach.\r\n\r\n> One of pre-release features was storing destructed object's weak reference in some array because storing into array is completely internals process and can not be normally interrupted during standard destructor execution (we don't count die() before calling notify callback at all."}}