| 969 | return true; |
| 970 | } |
| 971 | cson_value *get() { |
| 972 | int64_t min_timestamp = LLONG_MAX; |
| 973 | int minix = -1; |
| 974 | for (int i = 0; i < sources.size(); i++) { |
| 975 | if (!sources[i].is_done()) { |
| 976 | if (sources[i].timestamp < min_timestamp) { |
| 977 | minix = i; |
| 978 | min_timestamp = sources[i].timestamp; |
| 979 | } |
| 980 | } |
| 981 | } |
| 982 | cson_value *ret = sources[minix].consume(); |
| 983 | if (minix != -1) |
| 984 | sources[minix].get(); |
| 985 | return ret; |
| 986 | } |
| 987 | |
| 988 | protected: |
| 989 | std::vector<event_source> sources; |