X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Focaml%2Fgetter%2Fhttp_getter_env.ml;h=3264d6c65c33c546f6acae91acf0a20239627b39;hb=45b8f3d3fcc007ffd2e7891b992444908aa1a2fd;hp=39e83a965d71197a81e7f62f3de8395530659a1a;hpb=384c369d4cbf5dd6cf1013902d3a218260400e73;p=helm.git diff --git a/helm/ocaml/getter/http_getter_env.ml b/helm/ocaml/getter/http_getter_env.ml index 39e83a965..3264d6c65 100644 --- a/helm/ocaml/getter/http_getter_env.ml +++ b/helm/ocaml/getter/http_getter_env.ml @@ -53,7 +53,7 @@ let port = lazy (Helm_registry.get_int "getter.port") let _servers = ref None let servers = - lazy + function () -> (match !_servers with | None -> failwith "Getter not yet initialized: servers not available" | Some servers -> servers) @@ -74,7 +74,7 @@ let reload_servers () = _servers := Some (load_servers ()) let save_servers () = let oc = open_out (Lazy.force servers_file) in List.iter (fun (_,server) -> output_string oc (server ^ "\n")) - (Lazy.force servers); + (servers ()); close_out oc let host = @@ -132,11 +132,11 @@ servers: (match Lazy.force cache_mode with Enc_normal -> "Normal" | Enc_gzipped -> "GZipped") (String.concat "\n\t" (* (position * server) list *) (List.map (fun (pos, server) -> sprintf "%3d: %s" pos server) - (Lazy.force servers))) + (servers ()))) let add_server ?position url = let new_servers = - let servers = Lazy.force servers in + let servers = servers () in match position with | None -> servers @ [-1, url]; | Some p when p > 0 -> @@ -146,6 +146,7 @@ let add_server ?position url = | hd :: tl (* when p > 1 *) -> hd :: (add_after (pos - 1) tl) in add_after p servers + | Some 0 -> (-1, url)::servers | Some _ -> assert false in _servers := Some new_servers; @@ -153,7 +154,7 @@ let add_server ?position url = reload_servers () let remove_server position = - _servers := Some (List.remove_assoc position (Lazy.force servers)); + _servers := Some (List.remove_assoc position (servers ())); save_servers (); reload_servers ()