You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Motivation
----------
Because of how the addListener and notifyListener works, it could be that
one deadlocks each other because they are waiting on the same locks from
different threads.
Modifications
-------------
The listeners are copied before notified, moving it out of the synch block.
Result
------
Since notify is not synched anymore, the lock should be not happening anymore.
Note that also the listeners array is set to empty which avoid notifying listeners
more than once potentially.
Thanks to @adamhonen for pointing out the fix.
Change-Id: I7ebda58c2eadd62d8885e3eeac79d5a971e07979
Reviewed-on: http://review.couchbase.org/36219
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
0 commit comments