foreach i_index [array names counter_A] {
set temp_counter_A($i_index) $conter_A($i_index)
set temp_counter_B($i_index) $conter_B($i_index)
unset $conter_A($i_index)
unset $conter_B($i_index)
}
Is the above the actual snippet from the code? If so, my guess is the typos ($conter_A, $conter_B instead of $counter_A &$counter_B) are throwing errors and the mutex is not getting freed, causing deadlocking in your app. Removing the ns_mutex lines from the code wouldn't fix the errors, but the deadlocks would not occur. Are there any errors in your server log during the times the proc_doc Y runs?
I'm guessing the code above is not the actual code, but in addition to Rich's comment, your "unset" lines should not have var substitution ($), but rather should just be the varname itself:
unset conter_A($i_index)
unset conter_B($i_index)
^-- should be no "$"
-- michael
______________________
michael richman
princ software engineer
aol infrastructure dev
214.442.6048