Changeset 4001 for trunk/compiler

Show
Ignore:
Timestamp:
01/01/08 08:50:14 (12 months ago)
Author:
pmoura
Message:

Duplicate the range of threaded_call/2 tags for multi-threading Prolog compilers with bounded integers.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/compiler/logtalk.pl

    r4000 r4001  
    5858% tables of defined events and monitors 
    5959 
    60 :- dynamic('$lgt_before_'/5).               % '$lgt_before_'(Obj, Msg, Sender, Monitor, Call) 
    61 :- dynamic('$lgt_after_'/5).                % '$lgt_after_'(Obj, Msg, Sender, Monitor, Call) 
     60:- dynamic('$lgt_before_'/5).                   % '$lgt_before_'(Obj, Msg, Sender, Monitor, Call) 
     61:- dynamic('$lgt_after_'/5).                    % '$lgt_after_'(Obj, Msg, Sender, Monitor, Call) 
    6262 
    6363 
    6464% tables of loaded entities and respective relationships 
    6565 
    66 :- dynamic('$lgt_current_protocol_'/3).     % '$lgt_current_protocol_'(Ptc, Prefix, Type) 
    67 :- dynamic('$lgt_current_category_'/4).     % '$lgt_current_category_'(Ctg, Prefix, Type, Synchronized) 
    68 :- dynamic('$lgt_current_object_'/8).       % '$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super, Type, Synchronized, Threaded) 
    69  
    70 :- dynamic('$lgt_implements_protocol_'/3).  % '$lgt_implements_protocol_'(ObjOrCtg, Ptc, Scope) 
    71 :- dynamic('$lgt_imports_category_'/3).     % '$lgt_imports_category_'(Obj, Ctg, Scope) 
    72 :- dynamic('$lgt_instantiates_class_'/3).   % '$lgt_instantiates_class_'(Instance, Class, Scope) 
    73 :- dynamic('$lgt_specializes_class_'/3).    % '$lgt_specializes_class_'(Class, Superclass, Scope) 
    74 :- dynamic('$lgt_extends_category_'/3).     % '$lgt_extends_category_'(Ctg1, Ctg2, Scope) 
    75 :- dynamic('$lgt_extends_object_'/3).       % '$lgt_extends_object_'(Prototype, Parent, Scope) 
    76 :- dynamic('$lgt_extends_protocol_'/3).     % '$lgt_extends_protocol_'(Ptc1, Ptc2, Scope) 
    77  
    78 :- dynamic('$lgt_complemented_object_'/4).  % '$lgt_complemented_object_'(Object, Category, Dcl, Def) 
     66:- dynamic('$lgt_current_protocol_'/3).         % '$lgt_current_protocol_'(Ptc, Prefix, Type) 
     67:- dynamic('$lgt_current_category_'/4).         % '$lgt_current_category_'(Ctg, Prefix, Type, Synchronized) 
     68:- dynamic('$lgt_current_object_'/8).           % '$lgt_current_object_'(Obj, Prefix, Dcl, Def, Super, Type, Synchronized, Threaded) 
     69                                                 
     70:- dynamic('$lgt_implements_protocol_'/3).      % '$lgt_implements_protocol_'(ObjOrCtg, Ptc, Scope) 
     71:- dynamic('$lgt_imports_category_'/3).         % '$lgt_imports_category_'(Obj, Ctg, Scope) 
     72:- dynamic('$lgt_instantiates_class_'/3).       % '$lgt_instantiates_class_'(Instance, Class, Scope) 
     73:- dynamic('$lgt_specializes_class_'/3).        % '$lgt_specializes_class_'(Class, Superclass, Scope) 
     74:- dynamic('$lgt_extends_category_'/3).         % '$lgt_extends_category_'(Ctg1, Ctg2, Scope) 
     75:- dynamic('$lgt_extends_object_'/3).           % '$lgt_extends_object_'(Prototype, Parent, Scope) 
     76:- dynamic('$lgt_extends_protocol_'/3).         % '$lgt_extends_protocol_'(Ptc1, Ptc2, Scope) 
     77                                                 
     78:- dynamic('$lgt_complemented_object_'/4).      % '$lgt_complemented_object_'(Object, Category, Dcl, Def) 
    7979 
    8080 
     
    15781578% '$lgt_expand_library_path'(+atom, -atom) 
    15791579% 
    1580 % converts a library alias into its corresponding path 
     1580% converts a library alias into its corresponding path; uses a depth 
     1581% bound to prevent loops (inspired by similar code in SWI-Prolog) 
    15811582 
    15821583'$lgt_expand_library_path'(Library, Path) :- 
    1583     '$lgt_expand_library_path'(Library, Path, 16).  % depth bound to prevent loops 
     1584    '$lgt_expand_library_path'(Library, Path, 16). 
    15841585 
    15851586 
     
    1307413075% multi-threading tags 
    1307513076 
    13076 '$lgt_threaded_tag_counter'(0). 
    13077  
    13078  
    1307913077'$lgt_new_threaded_tag'(New) :- 
    1308013078    with_mutex('$lgt_threaded_tag',  
     
    1330613304            mutex_create(_, [alias('$lgt_threaded_tag')]) 
    1330713305        ;   mutex_create('$lgt_threaded_tag') 
     13306        ), 
     13307        (   current_prolog_flag(bounded, true) -> 
     13308            current_prolog_flag(min_integer, Min), 
     13309            assertz('$lgt_threaded_tag_counter'(Min)) 
     13310        ;   assertz('$lgt_threaded_tag_counter'(0)) 
    1330813311        ) 
    1330913312    ;   true