[
Lists Home |
Date Index |
Thread Index
]
- From: Miles Sabin <msabin@cromwellmedia.co.uk>
- To: Toivo Lainevool <tlainevool@yahoo.com>, XMLDev list <xml-dev@ic.ac.uk>
- Date: Wed, 15 Dec 1999 18:03:47 -0000
Toivo Lainevool wrote,
> Miles Sabin wrote,
> > I fear there are some big problems here. In particular,
> ... snip ...
> > String name = (String)joinNameTable.get(qName);
> ... snip ...
> > Is rather nastily thread-unsafe: the shared qName could be
> > read/written by multiple threads in joinName(). You should
> > either synchronize this method, or create a new QName locally.
>
> Hashtable get() and put() are synchronized, so the read/write
> operations are thread safe. No need to have separate
> synchronized blocks.
True but that wasn't the problem I was pointing to. You snipped
out the important bits and left the bit that was OK ;-)
private static QName qName;
public static String joinName
(String uriPart, String localPart)
{
qName.uri = uriPart; // Unsynchronized write of
qName.local = localPart; // shared qName
String name = (String)joinNameTable.get(qName);
// ^^^^^
// Unsynchronized read of
// shared qName
// ... etc ...
}
Hashtable.get() being synchronized doesn't help here.
Cheers,
Miles
--
Miles Sabin Cromwell Media
Internet Systems Architect 5/6 Glenthorne Mews
+44 (0)20 8817 4030 London, W6 0LJ, England
msabin@cromwellmedia.com http://www.cromwellmedia.com/
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo@ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|