diff options
author | Dylan William Hardison <dylan@hardison.net> | 2018-09-24 21:54:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-24 21:54:18 +0200 |
commit | 8047b0395f5175da934f3aaf09b15a15d83da755 (patch) | |
tree | 95664a686c75cc0363395bddde0eb5d5a122b821 /extensions/Ember/lib | |
parent | 6a87c6d646f28edd54961b4a967d9de2e4b7b66a (diff) | |
download | bugzilla-8047b0395f5175da934f3aaf09b15a15d83da755.tar.gz bugzilla-8047b0395f5175da934f3aaf09b15a15d83da755.tar.xz |
Bug 1492926 - Handle DBIx::Connectors more appropriately
This is a bigger change than I anticipated, because the way we cached
DBIx::Connector objects was bad.
Now we cache the Bugzilla::DB instances in connect_main() and connect_shadow().
This is for maintaining a 1:1 mapping of Bugzilla::DB objects and
DBIx::Connector objects. This is important because we want be able to inspect
Bugzilla::DB->bz_in_transactions() from the 'connected' event.
Note that we weaken the lexical variable $self in _build_connector()
because it is referenced by the callback passed to DBI.
Without this there would be a memory cycle and stuff would never be freed.
(tested my understanding in this gist:
https://gist.github.com/dylanwh/646574a027f7b7d92cb7586676da7468)
Diffstat (limited to 'extensions/Ember/lib')
0 files changed, 0 insertions, 0 deletions