Is WeakValueDictionary thread-safe?

Delaney, Timothy C (Timothy) tdelaney at avaya.com
Tue May 18 23:25:04 EDT 2004


Luke wrote:

> Is weakref.WeakValueDictionary supposed to be thread-safe?

No, nor are any of the other built-in mutable types. If you want
thread-safety, you need to deal with it yourself.

There is a thread-safe data structure in the standard library -
Queue.Queue.

> This small example script (attached) uses two threads to add and
> remove items from a WeakValueDictionary.  It is giving me a number of
> error messages on stderr (with 2.3.3 & 2.3.4rc1) which look like this:
> 
>    Exception exceptions.KeyError: 'bar' in <function remove at
> 0x4017372c> ignored
> 
> Should this work without printing these errors, or have I
>   misunderstood? I just wanted to check with this newsgroup before
> filing a bug... 

You've misunderstood.

Tim Delaney




More information about the Python-list mailing list