Code is ThreadSafe if it has the desired result when multiple threads are executing it concurrently. ---- ''How can this be achieved ?'' By using semaphores and locks so only one thread is modifying any piece of data at a time, and no reads occur during writes. Or, write in a ThreadSafeLanguage. ---- Ways to make code ThreadSafe in a thread-vicious language: http://groups.google.com/groups?hl=fr&selm=2000-03-05-02-59.0%40chch.demon.co.uk&rnum=13 ---- Note for the unwary: for those used to coding on PCs, which typically have a single processor, there can be a tendency to cheat a little bit, knowing that the CPU, in reality, can only do one thing at a time. I wrote a multi-threaded serial data acquisition driver that was "ThreadSafe" -- as long as it only ran on one CPU. When we deployed this driver (after three solid months of testing without a failure) it broke in the first two hours of use -- the target box had multiple processors. I was at the client's site until 2:00am that night recoding the locking mechanisms to eliminate PriorityInversion, RaceCondition, and FatalEmbrace problems that never showed up on a single processor. Safety = always assume that a condition of truly simultaneous access can occur and code accordingly. -- GarryHamilton ---- CategoryConcurrency