lock003.tcl
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
- # See the file LICENSE for redistribution information.
- #
- # Copyright (c) 1996, 1997, 1998, 1999, 2000
- # Sleepycat Software. All rights reserved.
- #
- # $Id: lock003.tcl,v 11.16 2000/08/25 14:21:51 sue Exp $
- #
- # Exercise multi-process aspects of lock. Generate a bunch of parallel
- # testers that try to randomly obtain locks.
- proc lock003 { dir {iter 500} {max 1000} {procs 5} {ldegree 5} {objs 75}
- {reads 65} {wait 1} {conflicts { 3 0 0 0 0 0 1 0 1 1}} {seeds {}} } {
- source ./include.tcl
- puts "Lock003: Multi-process random lock test"
- # Clean up after previous runs
- env_cleanup $dir
- # Open/create the lock region
- set e [berkdb env -create -lock -home $dir]
- error_check_good env_open [is_substr $e env] 1
- set ret [$e close]
- error_check_good env_close $ret 0
- # Now spawn off processes
- set pidlist {}
- for { set i 0 } {$i < $procs} {incr i} {
- if { [llength $seeds] == $procs } {
- set s [lindex $seeds $i]
- }
- puts "$tclsh_path
- $test_path/wrap.tcl
- lockscript.tcl $dir/$i.lockout
- $dir $iter $objs $wait $ldegree $reads &"
- set p [exec $tclsh_path $test_path/wrap.tcl
- lockscript.tcl $testdir/lock003.$i.out
- $dir $iter $objs $wait $ldegree $reads &]
- lappend pidlist $p
- }
- puts "Lock003: $procs independent processes now running"
- watch_procs 30 10800
- # Remove log files
- for { set i 0 } {$i < $procs} {incr i} {
- fileremove -f $dir/$i.lockout
- }
- }