Code

Changes between Version 27 and Version 28 of DjangoSpecifications/Core/Threading


Ignore:
Timestamp:
04/16/08 06:04:22 (6 years ago)
Author:
mrts
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DjangoSpecifications/Core/Threading

    v27 v28  
    7878 
    7979||'''Module'''||'''Globals'''||'''Incomplete init'''||'''Inefficiencies'''|| 
    80 ||settings and global_settings||?||not reviewed|||| 
    81 ||utils/_decimal.py||lots, including code||not reviewed|||| 
     80||settings and global_settings||?||MODULE LEVEL INIT, not reviewed|||| 
     81||utils/_decimal.py||lots, including code||MODULE LEVEL INIT, not reviewed|||| 
    8282||django/contrib/sites/models.py||`SITE_CACHE`||OK||one db hit intended, more than one possible|| 
    8383||django/template/context.py||`_standard_context_processors`||OK||duplicated module loading with `__import__` possible|| 
    8484||`django/template/__init__.py`||`invalid_var_format_string, libraries, builtins`||OK||duplicated module loading with `__import__` possible|| 
    8585||django/template/loader.py||`template_source_loaders`||PROBLEM, see #6950, patch attached||duplicated module loading with `__import__` possible|| 
    86 ||django/template/loaders/app_directories.py||`app_template_dirs`||MODULE LEVEL INIT (probably OK)|||| 
    87 ||django/utils/translation/trans_real.py||`_accepted, _active, _default, _translations`||continue review here||foo|| 
    88 ||django/core/urlresolvers.py||`_callable_cache, _resolver_cache`||`memoize` decorator|||| 
    89 ||`django/core/serializers/__init__.py`||`_serializers`|||||| 
    90 ||django/db/models/fields/related.py||`pending_lookups`|||||| 
    91 ||django/db/transaction.py||`dirty, state`|||||| 
    92 ||django/dispatch/dispatcher.py||`connections, senders, sendersBack|||||| 
     86||django/template/loaders/app_directories.py||`app_template_dirs`||MODULE LEVEL INIT|||| 
     87||django/utils/translation/trans_real.py||`_accepted, _active, _default, _translations`||OK||explicit threading support, no inefficiencies|| 
     88||django/core/urlresolvers.py||`_callable_cache, _resolver_cache`||`memoize` decorator||duplicated module loading with `__import__` possible|| 
     89||`django/core/serializers/__init__.py`||`_serializers`||PROBLEM, incomplete init in `_load_serializers`|||| 
     90||django/db/models/fields/related.py||`pending_lookups`||OK?, needs further review||`append()` in `add_lazy_relation()` can add duplicated values, which may or may not confuse `pop()` in `do_pending_lookups()`|| 
     91||django/db/transaction.py||`dirty, state`||OK||explicit threading support, no inefficiencies|| 
     92||django/dispatch/dispatcher.py||`connections, senders, sendersBack||not reviewed|||| 
     93 
     94=== Problems === 
     95 
     96 1. django/template/loader.py: the "bad" algorithm above, patch attached to #6950 
     97 1. django/core/serializers/__init__.py: `_load_serializers()` is unsafe, patch attached to #FIXME: 
     98{{{ 
     991. thread 1: if not _serializers: true --> _load_serializers(), enter for loop 
     1002. thread 1: register_serializer(x) 
     1013. thread 2: if not _serializers: false --> use incomplete _serializers 
     1023. thread 1: register_serializer(y) 
     103}}} 
     104 1. django/db/models/fields/related.py: `append()` in `add_lazy_relation()` can add duplicated values, which may or may not confuse `pop()` in `do_pending_lookups()` 
    93105 
    94106=== Raw `grep` results ===