let get_definition cc fdef =
    let xdef = fdef.l_var_info in
    try Hdef.find user_definitions xdef
    with Not_found ->
      UserDefinition.lock xdef ;
      try
        let udef , items = cc fdef in
        Hdef.add user_definitions xdef udef ;
        UserDefinition.define udef items ; udef
      with error ->
        UserDefinition.unlock xdef ; raise error