[session] use a dedicated class to track cnxset
We introduce a new CnxSetTracker to track `cnxset` used by Transaction and
allows to wait for them. This new class does not use Thread ID not thread
joining to work. This allows to use multiple transaction per thread and a
transaction in multiple thread.
The class itself is totally threadsafe by the Transaction is still not
thread safe.
The old _threads_in_transaction attribute is dropped in favor of a new logic
based on this object. The registration of cnxset used is not done by the
Transaction itself. tx.cnset is a property handling the Consistency of its value
with the CnxSetTracker instance.
Note: The CnxSetTracker instance only track transaction id, not transaction
itself, So not reference cycle are created.
# -*- coding: utf-8 -*-
###############################################################################
#
# Put here information about external resources / styles used by your cube,
# or to overides existing UI properties.
#
# Existing properties are available through the `sheet` dictionary available
# in the global namespace. You also have access to a `data` function which
# will return proper url for resources in the 'data' directory.
#
# /!\ this file should not be imported /!\
###############################################################################
# CSS stylesheets to include in HTML headers
# uncomment the line below to use template specific stylesheet
# STYLESHEETS = sheet['STYLESHEETS'] + [data('cubes.%(cubename)s.css')]