| 243 | | interval = wi_time_interval(); |
|---|
| 244 | | |
|---|
| 245 | | wi_hash_wrlock(wt_servers); |
|---|
| 246 | | |
|---|
| 247 | | enumerator = wi_array_data_enumerator(wi_hash_all_keys(wt_servers)); |
|---|
| 248 | | |
|---|
| 249 | | while((key = wi_enumerator_next_data(enumerator))) { |
|---|
| 250 | | server = wi_hash_data_for_key(wt_servers, key); |
|---|
| 251 | | update = server->update_time > 0.0 ? server->update_time : server->register_time; |
|---|
| | 243 | if(wi_hash_count(wt_servers) > 0) { |
|---|
| | 244 | interval = wi_time_interval(); |
|---|
| | 245 | |
|---|
| | 246 | wi_hash_wrlock(wt_servers); |
|---|
| 253 | | if(interval - update > wt_settings.minupdatetime) { |
|---|
| 254 | | wi_log_warn(WI_STR("Deleting \"%@\" with URL %@: Last update %.0f seconds ago considered too slow"), |
|---|
| 255 | | server->name, server->url, interval - update); |
|---|
| 256 | | |
|---|
| 257 | | wt_servers_remove_stats_for_server(server); |
|---|
| 258 | | wi_hash_remove_data_for_key(wt_servers, key); |
|---|
| | 248 | enumerator = wi_array_data_enumerator(wi_hash_all_keys(wt_servers)); |
|---|
| | 249 | |
|---|
| | 250 | while((key = wi_enumerator_next_data(enumerator))) { |
|---|
| | 251 | server = wi_hash_data_for_key(wt_servers, key); |
|---|
| | 252 | update = server->update_time > 0.0 ? server->update_time : server->register_time; |
|---|
| 260 | | changed = true; |
|---|
| 261 | | } |
|---|
| 262 | | } |
|---|
| 263 | | |
|---|
| 264 | | wi_hash_unlock(wt_servers); |
|---|
| 265 | | |
|---|
| 266 | | if(changed) { |
|---|
| 267 | | wi_lock_lock(wt_status_lock); |
|---|
| 268 | | wt_write_status(true); |
|---|
| 269 | | wi_lock_unlock(wt_status_lock); |
|---|
| 270 | | |
|---|
| 271 | | wt_write_servers(); |
|---|
| | 254 | if(interval - update > wt_settings.minupdatetime) { |
|---|
| | 255 | wi_log_warn(WI_STR("Deleting \"%@\" with URL %@: Last update %.0f seconds ago considered too slow"), |
|---|
| | 256 | server->name, server->url, interval - update); |
|---|
| | 257 | |
|---|
| | 258 | wt_servers_remove_stats_for_server(server); |
|---|
| | 259 | wi_hash_remove_data_for_key(wt_servers, key); |
|---|
| | 260 | |
|---|
| | 261 | changed = true; |
|---|
| | 262 | } |
|---|
| | 263 | } |
|---|
| | 264 | |
|---|
| | 265 | wi_hash_unlock(wt_servers); |
|---|
| | 266 | |
|---|
| | 267 | if(changed) { |
|---|
| | 268 | wi_lock_lock(wt_status_lock); |
|---|
| | 269 | wt_write_status(true); |
|---|
| | 270 | wi_lock_unlock(wt_status_lock); |
|---|
| | 271 | |
|---|
| | 272 | wt_write_servers(); |
|---|
| | 273 | } |
|---|