+ Event[] get_monitor_events() {
+ if (chain_monitor != null) {
+ return chain_monitor.as_EventsProvider().get_and_clear_pending_events();
+ } else {
+ synchronized (monitors) {
+ assert monitors.size() == 1;
+ for (ChannelMonitor mon : monitors.values()) {
+ return mon.get_and_clear_pending_events();
+ }
+ return null;
+ }
+ }
+ }
+