From: williamkempf_at_[hidden]
Date: 2001-03-22 11:14:35


--- In boost_at_y..., williamkempf_at_h... wrote:
> The only suggestion left to
> contemplate at this time is the addition of a lock traits concept.

I've been thinking about this, but haven't coded anything up yet. Let
me ramble on about an implementation.

namespace boost {
  struct lock_tag { }
  struct trylock_tag { }
  struct timedlock_tag { }

  template <typename L>
  struct lock_traits
  {
    typedef ... lock_category;
  };
};

I can't see any other information that would go into a lock_traits
type. Is there some useful type information that I'm not thinking of
that should go in here?

Also, one of the suggestions was to use a lock_category type that
allows further decoupling of the lock types from the mutex types.
Usage was like this:

boost::lock_category<boost::mutex>::trylock lock(mx);

The problem with this is that there's not a one-to-one correspondance
of lock types to mutex types here. For instance, the
boost::fast_mutex doesn't have a trylock type. I can think of a few
ways to deal with this but was interested in hearing other's thoughts
on this and wondering if there's existing practice for this sort of
thing.

Bill Kempf