Boost logo

Boost Users :

From: Timmo Stange (ts_at_[hidden])
Date: 2007-02-05 03:57:14


Another update: I've added tracking similar to what I described
before. It now passes the random_signal_test except for the
final connection count check, which may be a result of the
different signal and connection lifetime control I had to use.
I ran it with 20 initial signals, a deletion probability of 0.5
and 10000 iterations and it never called a slot with a dead
tracked weak_ptr, which is what we want. It also cleans up
those slots for each connect() call.

The tracking functionality is still somewhat ugly and its per-
formance is horrible, but I think it's a starting point. The
signals::tracked<...> wrapper template currently only offers
implicit conversion to a shared_ptr, which won't enable binding
a pointer to member function to it, so it probably needs a
full smart pointer interface.

I've also thought about the use of recursive_mutex. I could
be turned into a normal mutex if the implementation would
unlock it before each slot call and lock it again after
that.

Regards

Timmo Stange


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net