On Fri, Feb 21, 2003 at 02:13:12AM +0100, Alfredo Braunstein wrote:

> 2) I've changed bucket_ to a pointer, so to reduce the swapping time to one
> operation (which is indeed threads-safe), because swap is defined as a
> template:

You know you can specialise this template, right ? I'm sure there must
be a cleaner solution than this ... I don't quite understand why you do
this swap anyway. What's wrong with just emptying the queue with pop()
in-place ? The locking stuff ?

I don't quite follow what context is racing with what other context.
Remember the timer is based on a GUI implementation so can't "interrupt"
any straight-line code that doesn't go back to the event loop...

> that the code is efficient (and I hope correct) but somewhat ugly. I plan
> to simplify it enormously when real threads become available. For instance,

Simplify ? threads ? Hrmmm...

Simple whitespace stuff  :

std::queue<Cache::ItemPtr> * bucket_;

not

std::queue<Cache::ItemPtr> *bucket_;

while (cache_queue_.size() && counter--) {

not

while ( cache_queue_.size() && counter-- ) {

(and everywhere else)

you still have one not  two newlines between some functions.

thanks,
john

Reply via email to